0

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

 var num = db.MyTable.Include(x => x.RelatedTable)
           .Count( x.idTenant == CurrentTenantID && x.Active &&
              x.RelatedTable.SomeProperty.Value == true);

这总是返回零记录。我是否错误地假设包括 RelatedTable 我可以在 where 部分使用它?

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

我正在使用实体框架 4.1。(数据库优先)

4

2 回答 2

1

Include如果您只想部分访问导航属性,则不需要使用WhereInclude仅用于从数据库中获取(急切加载)相关记录以及主记录到您的应用程序,但如果您只想计算记录,则没有任何意义。

于 2012-07-10T15:51:54.290 回答
1

您是否尝试获取记录数?如果是这样,你为什么还需要Include? RelatedTableEntity Framework在评估您的Count条件时将为您延迟加载实体集。此外,如果SomeProperty是 a bool?,您应该在检查值本身之前检查它是否有值。

var num = db.MyTable.Count(x => 
    x.idTenant == CurrentTenantID && 
    x.Active && 
    (x.RelatedTable.SomeProperty.HasValue && 
     x.RelatedTable.SomeProperty.Value));  
于 2012-07-10T15:51:59.540 回答