【发布时间】:2021-08-15 18:35:34
【问题描述】:
我需要根据以下查询编写一个 linq。
在 SQL Server 中,
select EXID,ID,NAME
from Table1 A
join Table2 B on A.BXID = B.BID
left outer join Table3 C ON C.AXID = A.ID
AND C.EXID = (some number/NULL)
这给了我 300 条记录
在 LINQ 中,
try
{
using (var context = new cltransformationContext())
{
var Details = (
from A in context.Table1
join B in context.Table2 on A.BXID equals B.BID
join C in context.Table3 on A.ID equals C.AXID
select new Table1()
{
ID = A.ID,
name = A.NAME + '-' B.Name
}).ToList();
return Details;
}
}
我在这里获得了 5000 条记录。
我错过了 left outer join 和 C.EXID = (some number/NULL) 条件。 如何在查询中做到这一点?
我应该只得到 300 条记录。
【问题讨论】:
-
您缺少 AND。
-
在 c# 中无法做到这一点。我们如何添加这个条件?
-
在 context.Table3.Where(x => x.EXID == 123) 中加入 C
标签: c# linq linq-to-sql