【发布时间】:2020-03-02 09:21:31
【问题描述】:
我正在尝试编写一个语句来获取实体框架中产品两个字段的总和。
给定以下结构:
public class Order
{
public int OrderNUmber {get; set;}
public virtual List<Orderline> OrderLines {get; set;}
public virtual List<ServiceLine> ServiceLines {get; set;}
public string someproperty {get; set;}
}
public class OrderLine
{
public string productname {get; set;}
public int quantity {get; set;}
public decimal price {get; set;}
}
public class ServiceLine
{
public string servicename {get; set;}
public int quantity {get; set;}
public decimal rate {get; set;}
}
我试图在一个查询中返回总订单价值:
var GrandTotal = Orders.Where(q => q.someproperty == "somecondition")
.Sum(order =>
order.OrderLines.Sum(line => line.quantity * line.price)
+ order.ServiceLines.Sum(sl =>sl.quantity * sl.rate));
但是这个版本确实得到了正确的总数。这个数字远低于预期。
【问题讨论】:
-
EF 的查询由于汇总这些行的方式而变为空值。
标签: c# asp.net-mvc-5 entity-framework-6 linq-to-entities