Сравнение таблиц SQL и получение значений с использованием Entity Framework - PullRequest
0 голосов
/ 21 июля 2010

У меня есть три таблицы: Person (PersonID (INT), Personname (varchar)), Items (ItemID (INT), Itemname (varchar)) и PersonItemAssoc (PersonItemAssoc (Int), PersonID (INT), ItemID (INT)).

PersonItemAssoc имеет много-много ассоциаций для personid и Itemid.

Я хочу получить способ, которым, если я передам itemId, я должен получить все PersonIds, которые не имеют ассоциации с этим ItemId в таблице PersonItemAssoc.

Я использую Entity Framework 4.0.
Пожалуйста, предложите способ реализации этого.

1 Ответ

2 голосов
/ 21 июля 2010
var peopleWithoutItem = from p in Context.Person
                        where !p.PersonItems.Any(pi => pi.Item.ItemId == someItemId);
                        select p;

Обратите внимание, что если вы избавитесь от PersonItemAssoc(int) и сделаете ПК PersonItemAssoc составным из PersonID и ItemID, тогда EF может делать Люди с Предметами как многие ко многим, вместо двух 1 ко многим отношения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...