我也有一些DepartmentCode
现在我想得到这样的东西(sql语法):
Select e1.ID
from entity1 e1
join entity2 e2 on e1.OwnerCode = e2.OwnerCode and e2.DepartmentCode=7
通过Linq
我写道:
var q = from e1 in entityes1
join e2 in entityes2 on e1.OwnerCode equals e2.OwnerCode ...
但是如何插入DepartmentCode = 7这里我不明白。
答案 0 :(得分:7)
这并不是加入表格的一个因素,它是选择记录的一个因素,所以它应该是一个where子句:
var q = from e1 in entityes1
join e2 in entityes2 on e1.OwnerCode equals e2.OwnerCode
where e2.DepartmentCode == 7
select e1.ID;
var id = q.Single();
答案 1 :(得分:3)
我真的不喜欢这种构造,而且可能还有另一种方法可以编写你想要的查询....但是如果你已经有了一个有效的查询并且只是试图翻译它,那么就有办法做你想要的。
var q =
from e1 in entityes1
join e2 in entityes2 on
new { OC = e1.OwnerCode, DC = 7 }
equals
new { OC = e2.OwnerCode, DC = e2.DepartmentCode }
答案 2 :(得分:2)
没有测试,但应该这样做:
var q = from e1 in entityes1
join e2 in entityes2
on e1.OwnerCode equals e2.OwnerCode
where e2.DepartmentCode==7
答案 3 :(得分:1)
加入表后,必须放置where子句,然后选择所需的id。您将通过对IQueriable对象执行Single方法来获取它。示例如下:
var q = from e1 in entityes1
join e2 in entityes2 on e1.OwnerCode equals e2.OwnerCode
where e2.DepartmentCode == 7
select e1.ID;
var id = q.Single();