gpt4 book ai didi

c# - 使用 2 个 from 子句重写 linq-to-sql 查询以连接

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:45 24 4
gpt4 key购买 nike

我有几个查询,其中 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com