![](/img/trans.png)
[英]What is the LINQ/Lambda equivalent to Select Count(*), SUM(someColumn) From SomeTable
[英]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.