无法在实体类型parameter_manual_input_pattern上设置字段/属性Store。有关详细信息,请参阅InnerException

时间:2017-07-20 11:38:46

标签: c# entity-framework inheritance tph

当我尝试添加一个新的"参数"时出现此错误对象进入数据库,我有:

  • "参数"抽象类
  • " parameter_manual_input_pattern" class继承"参数"抽象类
  • " parameter_store_pattern" class inherits" parameter"抽象类
  • "存储"类

请注意,该类仅继承与pattern相关的属性。



[Table("parameter")]
public abstract class parameter
{
    [Key]
    public string Parameter_Id { get; set; }
    public string Pattern { get; set; }
    
    public virtual string x { get; set; }
    public virtual string y { get; set; }
    

    [ForeignKey("Store")]
    public virtual string Store_Id { get; set; }
    public virtual Store Store { get; set; }
}

public class parameter_manuel_input_pattern
{
    public override string x { get; set; }
}

public class parameter_store_pattern
{
    public override string y { get; set; }

    [ForeignKey("Store")]
    public override string Store_Id { get; set; }
    public override Store Store { get; set; }
}


//DbContext
public class MyContext : DbContext
{
    public MyContext() : base()
    { }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<parameter>()
        .Map<parameter_store_pattern>(m => m.Requires("Pattern").HasValue("store"))
        .Map<parameter_manual_input_pattern>(m => m.Requires("Pattern").HasValue("manual"));
     }
}
&#13;
&#13;
&#13;

0 个答案:

没有答案