ASP.NET MVC5从继承的类

时间:2015-10-26 14:00:22

标签: c# entity-framework asp.net-mvc-5

正如我提到的here,我改变了我的ASP.NET MVC 5应用程序的结构,如下所示:

class Post {
    [Key]
    public int Id {get;set;}
    public DateTime CreationDate {get;set;}
    [Required]
    public virtual string Content {get;set;}
    public virtual Thread RelatedThread {get;set;}
}

class Thread : Post {
    public int ViewsCount {get;set;}
    [NotMapped]
    public override Thread RelatedThread {get;set;}
}

因为一个帖子包含一个帖子作为startpost,并且有一些额外的属性,比如视图。但是帖子的RelatedThread属性会破坏我的数据结构,所以我想覆盖它并让EF使用NotMapped属性忽略它(参见上面的代码)。

这不起作用,我收到以下错误(已翻译):

  

ignore-method不能用于模型'Thread'中的实体'RelatedThread',因为他继承了'Post',因为该属性已被分配。要从模型中排除属性,请对基本类型使用NotMapped属性或ignore-method。

我还试图在我的DbContext的OnModelCreating方法中使用流畅的api排除属性:

protected override void OnModelCreating(DbModelBuilder modelBuilder) {
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<Thread>().Ignore(thread => thread.RelatedThread);
}

但没有任何改变,我再次得到同样的异常 - 虽然我使用了异常中推荐的两种方法。为什么这不起作用?

0 个答案:

没有答案