выбрать столбцы суммы из другой таблицы с помощью linq - PullRequest
1 голос
/ 31 марта 2011

Вот мой код linq ..

( from Order o in masterRepository.Orders.Where(x => x.IsDeleted == false)
                join OrderItem oi in masterRepository.OrderItems on o.OrderID equals oi.OrderID
                group oi by new {o.StoreID, o.CreatedOn.Year, o.CreatedOn.Month, StoreNmae="Test" } into g
                        select new ST_SalesOrder
                       {
                         Year = g.Key.Year,
                         Month = g.Key.Month,
                         StoreID = g.Key.StoreID,
                         StoreName = "SA",
                         SubTotal = g.Sum(o => o.SubTotal),
                         Shipping = g.Sum(o => o.ShippingPrice),
                         Tax = g.Sum(o => o.Tax),
                         TotalAmount = g.Sum(o => o.Total),
                         TotalCount = g.Sum(oi => oi.Quantity)
                         }).OrderBy("Year desc, Month desc, StoreName").ToList();

Дело в том, что .. Мне нужно получить данные суммы из таблицы Order и таблицы OrderItem. но я могу группировать только по одной таблице.

Если я сгруппирую o по .... тогда TotalCount = g.Sum(oi => oi.Quantity) <- это делает ошибку, если я сгруппирую oi по ... затем <code>SubTotal = g.Sum(o => o.SubTotal), Shipping = g.Sum(o => o.ShippingPrice), Tax = g.Sum(o => o.Tax), <- они делают ошибку ... </p>

что мне делать !!! пожалуйста, помогите.

1 Ответ

1 голос
/ 31 марта 2011

Вы могли бы

group new { Item = oi, Order = o } by new {o.StoreID, o.CreatedOn.Year, o.CreatedOn.Month, StoreNmae="Test" } into g

тогда вы могли бы сложить

g.Sum(o => o.Order.Total)

и

g.Sum(o => o.Item.Quantity)
...