Member 12462411 Ответов: 1

Суммируйте столбцы из Объединенных таблиц, чтобы получить вычисленное значение с помощью linq to SQL


На диаграмме, приведенной ниже по ссылке, для каждого клиента я хочу выбрать все заказы, а затем для каждого заказа я должен рассчитать TotalPrice = (сумма всех продуктов питания, включенных в заказ * количество) + Extra Price. Я изо всех сил пытаюсь создать запрос для него, используя linq to sql.Мне нужно выбрать OrderId, Date и TotalPrice, и он должен включать в себя предложение where для сравнения идентификатора клиента.

Связь Таблиц

Что я уже пробовал:

постоянного тока.заказы.Выберите(о =&ГТ; новый нет.кодзаказа, о'.дата, TotalPrice = ( (о. orderLines.Выберите(пр =&ГТ; пр.foodItem.цене).Сумма() * десятичный.Синтаксический анализ(о. orderLines.Выберите (ox => ox. quantity).Метод toString())) + десятичную.Синтаксический анализ(о. orderLines.Выберите (x => x. extra price).Метод toString())) } );

BillWoodruff

Вы опубликовали тот же вопрос на форуме языка C#. Пожалуйста, снимите один из вопросов. Двойная проводка не допускается.

Member 12462411

Извините, это первый раз, когда я пишу здесь.

1 Ответов

Рейтинг:
1

Satya Prakash Swain

var q = from c in customer
        join o in order on o.fk_custId equals c.custId
        join ol in orderLines on ol.fk_orderId equals o.orderId
        join fi in foodItem on fi.foodId equals ol.fk_foodId
      \\  where 
        group new { c, o, ol, fi }  into g
        select new 
        { 
           orderId= o.orderId,
           date = o.date, 
           Total = g.Sum(x => x.fi.price* x.ol.quantity),
           TotalPrice= g.Sum(x => x.ol.extraPrice + x.m.Total )
        };


Соединения таблиц не являются специфическими. Пожалуйста, измените, как я приводил пример. Пожалуйста, попробуйте этот запрос.