dbcontext api 似乎将导航属性设置为 ICollections (用于关联的 * 端)。获取可查询对象的正常方法(例如,如果您想要计数)似乎是
int count = dbcontext.Entry(entry).Collection(c => c.navprop).Query().Count();
但如果您想经常在数据库中过滤,那会很不方便。更重要的是,它也很容易忘记。如果有人不小心说
int count = entry.navprop.Count();
然后它获取服务器上的所有数据并在那里进行计数,这很慢。
ObjectContext 默认使用的 EntityCollection 类型也是如此。
int count = entry.navprop.CreateSourceQuery().Count();
有没有办法在模型或其他地方设置导航属性的默认集合类型是 IQueryable 或 ObjectQuery 或某种可查询类型?
请注意,这只是导航属性的问题,因为上下文中的实际对象集和数据库集项目似乎是可查询的