Взгляните на EF Docs , вы найдете там ответ:
Обратите внимание, что DbSet и IDbSet всегда создают запросы к базе данных и всегда будут включать раунд выезд в базу данных, даже если возвращаемые объекты уже существуют в контексте. Запрос выполняется в отношении базы данных, когда:
blockquote>
- Он перечисляется оператором foreach (C #) или для каждого (Visual Basic).
- Он перечисляется коллекцией таких как
ToArray
,ToDictionary
илиToList
.- Операторы LINQ, такие как
First
илиAny
, указаны в самой внешней части запроса.- Вызываются следующие методы: метод расширения
Load
наDbSet
,DbEntityEntry.Reload
иDatabase.ExecuteSqlCommand
.