IEnumerable <T> и IQueryable <T> разъяснение?
После прочтенияэтот вопрос, Мне нужно прояснить некоторые вещи.
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;
Вопросы:
1) Можно ли сказать, что: в первом запросе SQLServer выполняет всю операцию, включая предложение where и возвратONLY соответствующие строки - в то время как второй делаетSELECT *
... и возвращаетсяall строки в C # иTHEN фильтры?
2) А если у меня естьcollection просто - в памяти. (var lstMyPerson = new List<MyPerson>()
)
IQueryable<MyPerson> lst = from c in lstMyPerson
where c.City == "<City>"
select c;
против
IEnumerable<MyPerson> custs = from c in lstMyPerson
where c.City == "<City>"
select c;
какая разница в исполнении сейчас?