Рассмотрите две таблицы Билл и Продукт с отношением многих-многих. Как вы получаете все счета за определенный продукт, используя Entity Sql?Entity Sql для отношения многих ко многим
2
A
ответ
0
Вам нужно использовать некоторые linq, подобные этому;
...
using (YourEntities ye = new YourEntities())
{
Product myProduct = ye.Product.First(p => p.ProductId = idParameter);
var bills = myProduct.Bill.Load();
}
...
Это предполагает, что вы использовали структуру entitiy для создания модели данных. В переменной счетов будет храниться коллекция объектов Билла, относящихся к вашему объекту продукта.
Надеюсь, это поможет.
3
Что-то вроде этого
SELECT B FROM [Container].Products as P
OUTER APPLY P.Bills AS B
WHERE P.ProductID == 1
будет производить ряд для каждого Билл
Другим вариантом является что-то вроде этого:
SELECT P, (SELECT B FROM P.Bills)
FROM [Container].Products AS P
WHERE P.ProductID == 1
Который будет производить строку для каждого соответствия продукта (в этот случай только один) , а второй столбец строки будет включать вложенный набор результатов, содержащий счета для этого продукта.
Надеется, что это помогает
Alex
Алекс, я просто хотел бы поблагодарить вас. OUTER APPLY был ключом, который я искал для решения другой проблемы Entity SQL, связанной с левым внешним соединением, от многих до многих соединений (свойство навигации). Еще раз спасибо. – CkH