gpt4 book ai didi

c# - 外部加入 LINQ 问题

转载 作者:行者123 更新时间:2023-11-30 21:23:45 26 4
gpt4 key购买 nike

我想在此查询中使用第二个连接语句执行外部连接,但我不断收到奇怪的错误! (必须是第三个红牛)

var Objeto = from t in Table1.All()
join su in table2.All() on t.Id equals su.Id
join tab2 in Table1.All() on t.PId equals tab2.Id //<-I want it here
select new
{
t.Field1,
SN = su.Field123,
PTN = tab2.FieldABC
};

如有任何帮助,我们将不胜感激。

[编辑] - 我忘了说我正在使用 SubSonic 3.0,这个错误似乎与 SubSonic 有关......

最佳答案

执行外部连接需要两个步骤:

  1. 将join转换为group join with into
  2. 如果连接的结果集为空,则对组使用 DefaultIfEmpty() 生成您期望的 null 值。

您还需要将 null 检查添加到您的 select

var Objeto = from t in Table1.All()
join su in table2.All() on t.Id equals su.Id
join tab2 in Table1.All() on t.PId equals tab2.Id into gj
from j in gj.DefaultIfEmpty()
select new
{
t.Field1,
SN = su.Field123,
PTN = (j == null ? null : j.FieldABC)
};

关于c# - 外部加入 LINQ 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1564244/

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