【发布时间】:2018-05-23 02:01:41
【问题描述】:
这是一个很奇怪的问题 总之
var q = (some query).Count();
给我一个号码,然后
var q = (some query).ToList().Count();
给我完全不同的数字...
提到(某些查询)有两个包含(连接)
有没有合理的解释???
编辑:这是我的查询
var q = db.membership_renewals.Include(i => i.member).Include(i => i.sport).Where(w => w.isDeleted == false).Count();
这给了我一个错误的号码
还有这个:
var q = db.membership_renewals.Include(i => i.member).Include(i => i.sport).Where(w => w.isDeleted == false).ToList().Count();
给我准确的数字..
编辑 2 当我将查询编写为 linq 查询时,它运行良好......
var q1 = (from d in db.membership_renewals where d.isDeleted == false join m in db.members on d.mr_memberId equals m.m_id join s in db.sports on d.mr_sportId equals s.s_id select d.mr_id).Count();
我认为实体框架不执行原始查询中的连接而是强制在 (ToList()) 中执行它们的问题...
【问题讨论】:
-
在不了解查询的情况下,我们无话可说
-
编写代码示例,以便人们理解问题并为您提供相关答案。
-
好的,我将查询代码编写为编辑...
标签: entity-framework entity-framework-core iqueryable