EF プロジェクトでルックアップ テーブルを使用する必要がありましたが、それを機能させるには少し手間がかかりましたが、何かをクエリする方法がわかりません。
3 つのテーブルがある場合 (これは質問を説明するためのテスト プロジェクトです):
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」を返しません。where
FirstSkill が何であるかを知っていて、この句と何をしなければならないかがわからないので、名前は必要ありません。