【发布时间】:2017-08-09 18:10:07
【问题描述】:
在上图中,我想为每个客户选择所有订单,然后为每个订单计算 TotalPrice =(订单中包含的所有食品的总和 * 数量)+ ExtraPrice。我正在努力使用 linq to sql 为其创建查询。
【问题讨论】:
标签: c# linq-to-sql
在上图中,我想为每个客户选择所有订单,然后为每个订单计算 TotalPrice =(订单中包含的所有食品的总和 * 数量)+ ExtraPrice。我正在努力使用 linq to sql 为其创建查询。
【问题讨论】:
标签: c# linq-to-sql
var res = (from a in dc.orders
join b in dc.orderLines on a.orderId equals b.fk_orderId
join c in dc.foodItems on b.fk_foodId equals c.foodId
where a.fk_custId == cID
group new { a,c,b } by a into g
select new
{
OID1 = g.Key.orderId,
date1 = g.Key.date.Value.Date,
price1 = g.Sum(x => x.c.price * x.b.quantity) + g.Key.orderLines.Select(o => o.extraPrice).Sum()
});
上面给出的是我正在寻找的 linq 查询。
【讨论】:
应该和这个差不多。我不在电脑旁进行测试,所以如果您遇到错误,请告诉我。
db.orders.Select(o => new { o.orderid, o.date, TotalPrice = ( (o.orderLines.Select(ol => ol.food items.Count()).Sum() * o.Quantity) + o.extraPrice) } )
【讨论】:
decimal.Parse() 可能没有 T-SQL 等效项有关。请问您为什么要对其进行ToStringing,然后将其解析回decimal?如果您删除它,您可能会发现它的行为符合预期。