【发布时间】:2014-11-05 12:23:38
【问题描述】:
我在使用 Entity Framework v6 将 T-SQL 查询“转换”为 linq 时遇到了一些问题。
我的工作 T-SQL 查询如下所示:
SELECT
[Person].*, [Person_Firm_PersonResponsibility].*
FROM
[Person]
JOIN
[Person_Firm_PersonResponsibility] ON [Person].ID = [Person_Firm_PersonResponsibility].PersonID
WHERE
[Person_Firm_PersonResponsibility].FirmID = 389
AND [Person].ID = 330
在 Linq 中,我有以下内容:
using (var ctx = new MyContext())
{
var result = (from p in ctx.People
join r in ctx.Person_Firm_PersonResponsibility on p.ID equals r.PersonID
where r.FirmID == firmId && p.ID == personId
select p)
.Include("Person_Firm_PersonResponsibility.PersonResponsibility")
.Include("Person_Firm_PersonResponsibility")
.FirstOrDefault();
return result;
}
我的目标是只获取对特定公司负责的特定人员(公司 ID)。公司、人员和职责之间的关系是我要查询的多对多 Person_Firm_PersonResponsibility 表。
从我得到一个人的意义上说,查询“有效”,但它包括他/她对任何公司的所有责任,而不是我尝试删除的特定公司 (firmId) .Include("") ,但没有这样做。
有谁知道如何做到这一点?
【问题讨论】:
-
我的回答解决了你的问题吗?
-
抱歉(太长了)延迟,Steve :-( 是的,它确实解决了我的问题。非常感谢!:-)
标签: sql-server entity-framework linq-to-entities relational-database