我有一个类“Campaign”,它有一个导航属性“Students”。事件类有一个属性“StudentsCount”来存储学生的数量。我不想在查询结果中包含所有学生。如何在附加各自的学生人数的同时查询事件?理想情况下,我不想在初始查询后遍历我的所有事件以获取计数。
IQueryable<TEntity> query = this._objectSet.AsQueryable(); //this is my campaigns object set
query = query.Where(c => c.UserId == id);
query = query.Include("");
return query.ToArray();
更新:-- 请注意,我的初始查询正在获取多个广告系列
我在想也许我可以用一个 select 做一些事情,但我不确定如何完成这个
最佳答案
在不加载子项集合的情况下查询计数称为额外惰性
查询,如果您需要该术语以允许您使用 Google 解决此问题。
在这种情况下,你会做这样的事情:
var campaign = query.Single();
var studentsQuery = context.Entry(campaign).Collection(c => c.Students).Query();
var count = studentsQuery.Count();
这将具体化实体的数量,而无需将它们全部带回来。
关于c# - 如何设置相关实体的计数属性而无需执行额外查询或包含不必要的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24743158/