Мне приходилось использовать таблицу поиска в проекте EF, и мне потребовалось немного поработать, чтобы заставить его работать, но я не уверен, как запросить что-то.Использование таблиц поиска с Entity Framework
Если у меня есть три таблицы (это тест проект, чтобы проиллюстрировать этот вопрос):
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();
Мой вопрос в том, что мне нужно изменить по вышеуказанному запросу, чтобы вернуть PersonName и PersonID всех, у кого есть навык с идентификатором 1? i.e. Не возвращается «FirstSkill». Мне не нужно имя, поскольку я знаю, что такое FirstSkill, и я не вижу, что мне делать с предложением where
.
Marvelous, спасибо. Я только что привык к Линку, но он все равно меня снова и снова заставляет. – GrandMasterFlush