linq count с объединением на нескольких таблицах - PullRequest
1 голос
/ 11 октября 2010

Допустим, у меня есть 3 стола: тележки, корзины и яйца, где в корзине может быть много яиц и где в тележках много корзин. Каждая корзина имеет внешний ключ, который отображается в корзину, а каждое яйцо имеет внешний ключ, который отображается в корзину.

Мне нужно вернуть таблицу, которая содержит эти столбцы:

-Имя корзины Количество корзин в корзине Количество яиц в корзине.

Каждая таблица - это EF, и я использую linq. Это комбинация соединений и подсчетов, и я двигаюсь кругами.

Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 11 октября 2010

Я сам человек LINQ-to-SQL, но я считаю, что EF автоматически генерирует свойства «один ко многим» как IEnumerable s, так что это должно работать для вас:

from cart in Carts
select new
{
    CartName = cart.Name,
    BasketCount = cart.Baskets.Count(),
    EggCount = cart.Baskets.SelectMany(b => b.Eggs).Count()
}
...