dbcontext API, кажется, устанавливает свойства навигации в ICollections (для * концов ассоциаций). Обычный способ получить запрашиваемые объекты (например, если вы хотите подсчитать), кажется,
int count = dbcontext.Entry(entry).Collection(c => c.navprop).Query().Count();
но это неудобно, если вы хотите часто фильтровать в БД. Что еще более важно, это также легко забыть. Если кто-то случайно скажет
int count = entry.navprop.Count();
затем он получает все данные на сервере и производит там подсчет, что происходит медленно.
То же самое верно и для типа EntityCollection, который ObjectContext использует по умолчанию.
int count = entry.navprop.CreateSourceQuery().Count();
Есть ли способ установить в модели или где-то еще, что типом коллекции по умолчанию для свойства навигации является IQueryable, ObjectQuery или какой-либо запрашиваемый тип?
Обратите внимание, что это проблема только для свойств навигации, поскольку фактические элементы набора объектов и набора баз данных в контексте кажутся доступными для запросов.