我正在使用以下查询,并且无法确定如何在其中添加联接:
var chi = Lnq.attlnks.Where(a => a.ownerid == emSysid)
.Select(c => new { sysid });
如何将其加入“attach”表(ON attlnks.sysid = attach.sysid)
并选择“name”,其中sysid是行ID?
答案 0 :(得分: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,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();
答案 1 :(得分: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;