Допустим, у меня есть таблица Orders
и таблица Payments
.
Каждый платеж относится к данному заказу: Payment.orderId
Я хочу запросить свои заказы:
var query = from o in db.Orders where o.blah = blah select o;
Но мне также нужна общая сумма, уплаченная за каждый заказ:
var query = from o in db.Orders
where o.blah = blah
select new
{
Order = o,
totalPaid = (from p in db.Payments
where p.orderId == o.id
select p.Amount).Sum()
};
LINQ to SQL генерирует именно тот запрос SQL, который я хочу.
Моя проблемачто я добавляю поддержку платежей в существующее приложение.Поэтому, чтобы минимизировать влияние кода, я бы хотел, чтобы totalPaid
был свойством моего Order
класса.
Я подумал о добавлении свойства "manual" и попытался заполнить его во время запроса.Но когда я пишу предложение select, я застрял:
var query = from o in db.Orders
where o.blah = blah
select "o with o.totalPaid = (from p in db.Payments <snip>).Sum()"
Как я могу это сделать?