Linq 使用EF";包括「;并包括在何处的相关表格

Linq 使用EF";包括「;并包括在何处的相关表格,linq,entity-framework-4.1,Linq,Entity Framework 4.1,到目前为止,我认为我可以做到: var num = db.MyTable.Include(x => x.RelatedTable) .Count( x.idTenant == CurrentTenantID && x.Active && x.RelatedTable.SomeProperty.Value == true); 这总是返回零记录。 我是否错误地假设在where部分可以使用关联表 顺便说一下。。

到目前为止,我认为我可以做到:

 var num = db.MyTable.Include(x => x.RelatedTable)
           .Count( x.idTenant == CurrentTenantID && x.Active &&
              x.RelatedTable.SomeProperty.Value == true);
这总是返回零记录。 我是否错误地假设在where部分可以使用关联表

顺便说一下。。。“SomeProperty”可以为空,这就是“.Value”的原因


我使用的是实体框架4.1。(首先是数据库)

如果只想访问
Where
部分中的导航属性,则不需要使用
Include
Include
仅用于从数据库向应用程序提取(即时加载)相关记录以及主记录,但如果只想统计记录,则没有意义。

是否尝试获取记录数?如果是这样,为什么您甚至需要
包含
?实体框架在评估您的
计数
条件时,将延迟加载为您设置的
相关表
实体。此外,如果
SomeProperty
bool?
,在检查值本身之前,应该先检查它是否有值

var num = db.MyTable.Count(x => 
    x.idTenant == CurrentTenantID && 
    x.Active && 
    (x.RelatedTable.SomeProperty.HasValue && 
     x.RelatedTable.SomeProperty.Value));  
谢谢,我认为“包括”在这种情况下是强制性的。谢谢,我认为“包括”在这种情况下是强制性的。