假設我有一個表Orders
和一個表Payments
。LINQ to SQL「聚合」屬性
每次付款涉及給定的順序: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
類的財產。
我想添加一個「手動」屬性,並試圖在查詢時填充它。 可是我在寫SELECT子句就是我堅持:
var query = from o in db.Orders
where o.blah = blah
select "o with o.totalPaid = (from p in db.Payments <snip>).Sum()"
我怎麼能這樣做?
也許使用'Aggregate'方法而不是'Sum'一個?注意確定'選擇'一些字符串''雖然... – leppie 2011-05-31 15:04:39
跛腳,這不是一個字符串,這是我想要實現,但無法找到如何編碼;-) – 2011-05-31 15:15:59