C# 未保存抽象属性的实体框架重写

C# 未保存抽象属性的实体框架重写,c#,entity-framework,C#,Entity Framework,我首先使用的是EF5代码。我有一个基类,其中包含一个抽象属性: public abstract class BaseTransaction : EntityBase { [Required] public int PolicyId { get; set; } public virtual Policy Policy { get; set; } public DateTime EffectiveDate { get; set; } public strin

我首先使用的是EF5代码。我有一个基类,其中包含一个抽象属性:

public abstract class BaseTransaction : EntityBase
{
    [Required]
    public int PolicyId { get; set; }
    public virtual Policy Policy { get; set; }

    public DateTime EffectiveDate { get; set; }
    public string Description { get; set; }

    public abstract double Premium { get; set; }
    public double Commission
    {
        get
        {
            return Premium * Policy.CommissionRate / 100;
        }
    }
}
我有几个不同的子类,每个子类对Premium的定义都不同。对于某些情况,它只是与类一起存储,而对于其他情况,它可能是只读计算的

例如:

public class ManualQuote : BaseTransaction 
{
    public double Deductible { get; set; }
    public double ClaimLimit { get; set; }
    public double AggLimit { get; set; }
    public override double Premium { get; set; }
}
将ManualQuote保存到数据库时,前三个属性将正确保存到字段。但是,无法保存高级房地产的数据。我是否做了错误的事情,或者这是实体框架的问题


谢谢。

抽象属性是否映射到您的数据库?您是否将该属性视为字段?好问题。不,我在数据库中看不到具有该名称的字段,即使在我删除并重新创建数据库之后也是如此。。考虑一下虚拟化。你尝试过代码第一迁移吗?
Up
方法的脚手架代码是什么。它没有包括
Premium
property吗?在基类中从抽象更改为虚拟解决了这个问题。谢谢