如何在Entity Framework Code First中映射sum属性(如TotalPrice)

Pet*_*etr 5 mapping code-first ef-code-first c#-4.0 entity-framework-4.1

我首先使用实体​​框架4.1代码.我有经典样本:Order和OrderLines.每个OrderLine都有自己的价格,我想订购物业TotalPrice.

我现在不确定要声明TotalPrice属性.我可以使用linq sum将其定义为readonly,但是每当我将其添加到结果集时,它必须从db获取所有订单行以总结它的价格.

我正在考虑解决方案,它将全价存储到数据库(用于查询)并仅在订单保存之前重新计算(或者如果订单行更改),但我不知道如何做到这一点.

如何在EF中处理这样的场景?

感谢Petr的建议

ata*_*ini 0

为了简单起见,我建议不要存储而只是向分部类添加计算方法。我们之前已经通过*Methods后缀完成了此操作。例如:

订单.cs:

public partial class Order 
{       
   public ICollection<OrderLine> OrderLines { get;set; }
   //Other EF Properties
}
Run Code Online (Sandbox Code Playgroud)

订单行.cs:

public partial class OrderLine 
{       
   public double Price { get;set; }
   //Other EF Properties
}
Run Code Online (Sandbox Code Playgroud)

订单方法.cs

public partial class Order 
{
    public double GetTotalPrice() 
    {
        // Total price calculation
    }
}
Run Code Online (Sandbox Code Playgroud)