отношения многие ко многим - PullRequest
0 голосов
/ 14 сентября 2011

Я пытаюсь написать linq для получения данных из множества таблиц.

Вот таблицы

Продукты (ID, имя, описание)

Products_Items (ID, ProductID, Описание)

ProductsNeeds (ID, имя)

ProductsItems_Needs (ItemID, NeedsID)

Это запрос t-sql

select gPro.Name,gProItems.ShortDescription,gProItems.Description,gNeeds.Name
from Products gPro
join Products_Items gProItems on gPro.ID = gProItems.ProductID
join ProductsItems_Needs gProNeeds on gProNeeds.ItemID = gProItems.ID
join ProductsNeeds gNeeds on gNeeds.ID = gProNeeds.NeedsID
where gProItems.ID = 1

это линк

 var q = from p in objM.Products
         join gpItems in objM.Products_Items on p.ID equals gpItems.ProductID
         from needs in gpItems.ProductsNeeds
         where gpItems.ID == 1
         select p;

Этот запрос возвращает (Products), и у него есть Produts_Items, но у него нет ProductsNeeds.

Какие модификации я должен сделать, чтобы у каждого Products_items был ProductsNeeds?

Спасибо

1 Ответ

0 голосов
/ 14 сентября 2011

Наконец я нашел решение.

Изменение состояло в том, что вместо возврата продуктов он возвращает Product_Items.

var q = from pItems in objM.Products_Items
join p in objM.Products on pItems.ID equals p.ID into joinedProducts
    from p in joinedProducts.DefaultIfEmpty()
from needs in pItems.ProductsNeeds
where pItems.ID == 1
select pItems;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...