C# 未保存抽象属性的实体框架重写
我首先使用的是EF5代码。我有一个基类,其中包含一个抽象属性: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
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吗?在基类中从抽象更改为虚拟解决了这个问题。谢谢