我有几个查询,其中 2 个 from 子句如下所示:
var TheResult = from a in MyDC.Table1
from b in MyDC.Table2
where a.SomeCol == b.SomeOtherCol
select new MyModel() {....}
我担心这种语法会创建一个笛卡尔连接,我想用 join
语法重写它,只有一个 from
子句。我的问题是:我应该如何确定将哪个表放在 from
子句中?
谢谢。
编辑:查询生成的 t-sql 以 SELECT COALESCE((
是好事还是坏事?
最佳答案
您可以很容易地将其重写为 JOIN:
var result = from a in MyDC.Table1
join b in MyDC.Table2 on a.SomeCol equals b.SomeOtherCol
select new MyModel() { SomeProp = a.SomeCol, SomeProp2 = b.SomeCol }
或者如果你想要一个左连接:
var result = from a in MyDC.Table1
join b in MyDC.Table2 on a.SomeCol equals b.SomeOtherCol
into myGroup
from m in myGroup.DefaultIfEmpty()
select new MyModel() { SomeProp = a.SomeCol, SomeProp2 = m.SomeCol }
关于c# - 使用 2 个 from 子句重写 linq-to-sql 查询以连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12631973/