我有以下一行:
orderBaseData.Single(o => o.Id == order.Id).OrderMessages.Count;
我想过滤一下这个。每个OrderMessage都有一个名为hideFromUser的变量,我想得到OrderMessages的计数,其中只将其设置为FALSE。
提前致谢,
鲍勃
答案 0 :(得分:1)
使用OrderMessages上的位置
orderBaseData
.Single(o => o.Id == order.Id)
.OrderMessages
.Where(x => !x.hideFromUser)
.Count();
答案 1 :(得分:0)
为了在单个查询中有效地检索数据,您可以使用以下内容,而不是依赖于LazyLoading OrderMessages:
orderBaseData
.Where(o => o.Id == order.Id)
.Select(o => o.OrderMessages.Where(x => !x.hideFromUser).Count())
.Single();
当orderBaseData是针对数据库的某些IQueryable
时,这种方法非常有趣。如果所有数据都已经存储在内存中,那么它并不比其他方法更好或更差。