#c# #linq #entity-framework
#c# #linq #entity-framework
Вопрос:
Я хочу получить все инструменты, используемые продуктами с X = 14
, как я могу преобразовать этот select в LINQ?
SELECT DISTINCT t.* FROM Product p
INNER JOIN ProductTool pt ON pt.Product_ID = p.ID
INNER JOIN Tool t ON t.ID = pt.Tools_ID
WHERE p.X = 14
Это GroupJoin
то, что мне нужно или что?
tools.GroupJoin(products, t=>, p=>, ...)
products.GroupJoin(tools, p=>, t=>, ...)
Ответ №1:
Если у вас правильно настроены внешние ключи, entity framework должна установить эту связь, и вы сможете просто выполнить:
var tools = from p in products where p.X == 14 select p.Tool;
Комментарии:
1. Спасибо, это меня очень просветило… На самом деле это очень просто
return context.Product.Where(p => p.X == id).SelectMany(t => t.Tools).Distinct().ToList();