Entity Sql для отношения многих ко многим - PullRequest
2 голосов
/ 15 апреля 2009

Рассмотрим две таблицы «Билл» и «Продукт» со многими отношениями. Как получить все счета за конкретный продукт, используя Entity Sql?

Ответы [ 2 ]

3 голосов
/ 02 мая 2009

как то так

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

0 голосов
/ 15 апреля 2009

Вам нужно использовать что-то вроде linq;

...
using (YourEntities ye = new YourEntities())
{
   Product myProduct = ye.Product.First(p => p.ProductId = idParameter);
   var bills = myProduct.Bill.Load();       
}
...

Это предполагает, что вы использовали подходящую среду для построения модели ваших данных. Переменная bills будет содержать коллекцию объектов Bill, связанных с вашим объектом продукта.

Надеюсь, это поможет.

...