Linq加入哪里?
问题描述:
- 使用实体 - ID,OwnerCode
- ENTITY2 - OwnerCode,DepartmentCode
我也有一些DepartmentCodeLinq加入哪里?
现在我想达到这样的目的(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这里我不明白。
答
这不是真的在连接表的一个因素,它在选择记录的一个因素,所以它真的应该是一个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();
答
加入你的表后放置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();
答
没有测试但应该做的:
var q = from e1 in entityes1
join e2 in entityes2
on e1.OwnerCode equals e2.OwnerCode
where e2.DepartmentCode==7
答
我真的不喜欢这个建筑,而且很可能有另一种方式来写你要去的查询。 ......但是如果你已经有了一个工作查询,并且只是试图翻译它,那么有一种方法可以做你正在问的东西。
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 }