IEnumerable <T> und IQueryable <T> Klärung?

Nach dem Lesendiese Frage, ich muss einige Dinge klären.

IQueryable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;

IEnumerable<Customer> custs = from c in db.Customers
where c.City == "<City>"
select c;

Fragen:

1) Kann man sagen, dass in der ersten Abfrage der SQLServer die gesamte Operation ausführt, einschließlich der where-Klausel und der RückgabeNUR die relevanten Zeilen - während die zweite tutSELECT * ... und kehrt zurückalles Zeilen in C # undDANN Filter?

2) Was ist, wenn ich eine habe?Sammlung nur - in Erinnerung. (var lstMyPerson = new List<MyPerson>() )

IQueryable<MyPerson> lst = from c in lstMyPerson 
where c.City == "<City>"
select c;

vs

IEnumerable<MyPerson> custs = from c in lstMyPerson 
where c.City == "<City>"
select c;

Was wird jetzt der Unterschied in der Ausführung sein?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage