Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将联接添加到此LINQ查询_C#_Linq - Fatal编程技术网

C# 将联接添加到此LINQ查询

C# 将联接添加到此LINQ查询,c#,linq,C#,Linq,我正在使用以下查询,但在确定如何向其中添加联接时遇到了问题: var chi = Lnq.attlnks.Where(a => a.ownerid == emSysid) .Select(c => new { sysid }); 如何将其连接到“attach”表(在attlnks.sysid=attach.sysid上)并选择“name”,其中sysid是行id?对于Linq中的连接,查询表达式形式通常比lambda语法更具可读性-我相信这

我正在使用以下查询,但在确定如何向其中添加联接时遇到了问题:

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

如何将其连接到“attach”表
(在attlnks.sysid=attach.sysid上)
并选择“name”,其中sysid是行id?

对于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 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;

我对方法语法很熟悉,所以在Lambda中执行它是一个混乱的过程?我从我找到的例子中得到了这样的印象,谢谢
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;