将联接添加到此 LINQ 查询

本文关键字:LINQ 查询 添加 | 更新日期: 2023-09-27 18:31:57

我正在使用以下查询,并且在弄清楚如何向其中添加连接时遇到问题:

var chi = Lnq.attlnks.Where(a => a.ownerid == emSysid)
                     .Select(c => new { sysid });

如何将其连接到"附加"表(ON attlnks.sysid = attach.sysid)并选择"名称",其中 sysid 是行 id?

将联接添加到此 LINQ 查询

对于 Linq 中的连接,查询表达式形式通常比 lambda 语法更具可读性 - 我相信这就是您的要求:

var chi = from t in Lnq.attach
          join a in Lnq.attlnks
          on t.sysid equals a.sysid
          where a.ownerid == emSysid
          select t.name;

如果只有一个条目最多匹配,则可以在这种情况下链接FirstOrDefault()(或其他替代项,如 SingleOrDefault、Single、First 等):

var chi = (from t in Lnq.attach
          join a in Lnq.attlnks
          on t.sysid equals a.sysid
          where a.ownerid == emSysid
          select t.name).FirstOrDefault();

如果我理解你的问题,这应该可以正常工作:

var query = from a in attlinks
     join aa in attach on a.sysid equals aa.sysid into a2
     where a2.sysid == a2.ownerid 
     select a2.Name;