在EF Core中计算外键表行

时间:2018-04-26 12:12:01

标签: entity-framework

在SQL中,我能够做到这样的事情:

SELECT colA,colB,(SELECT COUNT(1)FROM ForeignTable WHERE colA = TableA.colA) 来自TableA

在EF Core中是否可以这样?

只是要清楚模型

public class TableA
{
    public string colA { get; set; }
    public string colB { get; set; }
}

public class ForeignTable
{
    public string colA { get; set; }

    public virtual TableA TableA { get; set; }
}

1 个答案:

答案 0 :(得分:0)

感谢Ivan Stoev,正确的答案是将TableA中的Navigation属性包含在ForeignTable中,并确保查询中的表是.Include()。

以下是供参考,方式更复杂......

var data = from q in _context.TableA.
GroupJoin(_context.ForeignTable, i => i.colA, j => j.FcolA,
(i,j) => new {TableA = i, ForeignTable = j}
select new TableA
{
colA = q.TableA.colA,
colB = q.TableA.colB,
count = q.ForeignTable.Count()
};