Собеседования c#
29.04
IQueryable vs IEnumerable
Достаточно частый вопрос, чтобы проверить как понимает человек работу с EntityFramework. Причем он же может быть задан и по-другому, а цель: человек должен понимать когда происходит запрос в бд. `var someOrders = dbContext .Orders //IQueryable .Where(x=>x.Name=="someName"); //IQueryable
var someFilteredOrders = someOrders .Where(x=>x.Price>100) //IQueryable .OrderBy(x=>x.Date); //IQueryable
var materializedOrders=someFilteredOrders.ToArrayAsync(); //Это уже IEnumerable, именно здесь происходит запрос
Т е пока мы накидываем запрос через лямба выражение - это IQueryable, по сути описание запроса. При вызове ToArray() или ToList() происходит запрос и объекты уже появляются в базе - IEnumerable
из интересного
foreach(var order in someFilteredOrders ){ //сделай что-нибудь }
Здесь происходит запрос при начале foreach. А когда он заканчивается вызывается Dispose. Момент с Dispose довольно интересный, и его любят слышать на собеседованиях =)`
еще контент в этом сообществе
еще контент в этом соообществе
Собеседования c#
29.04
войдите, чтобы увидеть
и подписаться на интересных профи