假设我有一个表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