我有一个包含字段PolicyToX
的示例连接表Id, PolicyId, PersonId, SchoolId
。记录始终保存,其中一个FK为NULL,例如1, 1, 5, NULL
。
我想在LINQ中编写一个查询,当给出两个参数时:PersonId
和SchoolId
将过滤给定学校的所有策略,但不包含已绑定到给定Person的那些。< / p>
所以,如果我有一个数据集:
[Id][PolicyId][PersonId][SchoolId]
1 1 5 NULL
2 1 NULL 1
3 2 NULL 1
并传递参数PersonId = 5
和SchoolId = 1
,结果应为ID = 2的一项政策。
谢谢!
答案 0 :(得分:1)
假设PolicyToX包含数据,那么您正在寻找什么?
var ids = from e in PolicyToX where e.PersonId == personId select e.PolicyId;
var result = from d in PolicyToX where d.SchoolId == schoolId && !ids.Contains(d.PolicyId) select d;
答案 1 :(得分:0)
var data = list.Where(x => x.SchoolId == schoolId && x.PersonId != personId);
你在说这个吗?