链接到实体数子查询

本文关键字:查询 实体 链接 | 更新日期: 2023-09-27 18:06:43

我正试图在linq中对实体(EF4)进行此查询

select Header.Id, 
 (select count(*) 
  from Detail 
  where Header.Id = Detail.headerId) detailcount
from Header

这不起作用,因为EF:
不允许这样做。(Header和Detail都是EntityObjects)

from h in context.Header
select new Header
    {
        Id = h.Id,
        DetailCount = (from d in context.Detail 
                       where d.headerId = p.Id select d).Count()
    }

DetailCount是我在Detail Entity (partial class)上添加的一个新属性

上面的Linq查询不能工作,因为我不能投影到映射实体上:
实体不能在LINQ to Entities查询中构造

还有其他方法吗?

链接到实体数子查询

下面的

将完成您的任务,因为它们是相关的实体

from h in context.Header
select new Header
    {
        Id = h.Id,
        detailCount = h.Detail.Count()
    }

我通过使用匿名类型来解决这个问题。