【发布时间】:2022-01-01 05:24:41
【问题描述】:
我在 SQL Server 上有两个表 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()
你能帮帮我吗?
【问题讨论】:
-
这行得通吗?
.Select(a => new { a, count = db.TableB.Count(b => b.id1 == a.id1 && b.id2 == a.id2) }) -
db.TableA.Select(a => new { A = a, Count = db.TableB.Where(...).Count()}) -
@RichardDeeming 不,它有一个编译错误。
-
@class1234 错误信息是?
-
@class1234 如果您希望有人帮助您修复错误,那么您需要告诉我们错误是什么。指向您未提供任何错误详细信息的评论的链接没有帮助。
标签: c# sql sql-server linq linq-to-sql