繁体   English   中英

LINQ 等效于“select *, count()”

[英]LINQ Equivalent of "select *, count()"

我在 SQL 服务器上有两个表 A、B,如下所示:

A 的列:id1、id2、col_1、...、col_100

B 的列:id1、id2、...(某些列)

我想在 C# Linq 中写下 SQL 查询的等价物:

select *, (select count(*) from B where A.id1 = B.id1 and A.id2 = b.id2)  from  A

我知道这可以像下面这样完成:

var lst = db.TableA.Select(a => new {
    id1 = a.id1,
    id2 = a.id2,
    col_1 = a.col_1,
    ...
    ,
    col_100 = a.col_100,
    count = db.TableB.Where(b => b.id1 = a.id1 && b.id2 == a.id2).Count()
});

但是在这种格式中,我必须提到表 A 的所有列,而我只想在表 A 的现有列中添加一个新列,如下所示: select *, count()

你能帮助我吗?

这个怎么样:

var result = dbContext.TableA.Select(a => new
{
    A = a,
    Count = dbContext.TableB.Where(b => b.id1 = a.id1 && b.id2 == a.id2)
                            .Count(),
});

因此,您将 select 属性 A 中 tableA 的完整行,并将 tableB 中相应项目的数量放入属性 Count

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM