我不得不在 EF 项目中使用查找表,我花了一些时间才让它工作,但我不确定如何查询某些内容。
如果我有三个表(这是一个说明问题的测试项目):
Person
------
ID - Int - PK
PersonName - varchar[50]
和
Skill
-----
ID - Int - PK
SkillName - varchar[50]
通过查找表链接:
PS_Lookup
---------
ID - Int - PK
PersonID - Int - FK : Person.ID
SkillID - Int - FK : Skill.ID
现在,如果我想返回所有拥有 ID 1 技能的用户,我可以这样做:
var result = (from p in context.People
select new
{
PersonID = p.ID,
PersonName = p.PersonName,
FirstSkill = (from s in p.PS_Lookup
where s.ID == 1
select s.SkillName),
}).ToList();
我的问题是,我需要对上述查询进行哪些更改才能返回具有 ID 1 技能的每个人的 PersonName 和 PersonID?即不返回“FirstSkill”。我不需要名称,因为我知道 FirstSkill 是什么,而且我看不出我与该where
子句有什么关系。