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;

какая разница в исполнении сейчас?

Ответы на вопрос(1)

Ваш ответ на вопрос