2012-04-22 128 views
0
我使用下面的查询

时遇到了问题搞清楚如何添加一个连接到它:添加加入到这个LINQ查询

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

我怎样才能将这个以“附加”表(ON attlnks.sysid = attach.sysid)和选择“名称”其中sysid是行ID?

回答

2

对于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,单,第一等其他替代品):

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(); 
+0

我熟悉方法的语法,所以在Lambda中这样做是一团糟呢?我从看到的例子中得到了这种印象,谢谢 – 2012-04-22 04:30:57

0

如果我明白你的问题,这应该很好地工作:

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;