如何针对一个表映射多个实体?

Sti*_*ian 10 c# asp.net-mvc entity-framework

我正在尝试对同一个表使用两个不同的实体.拥有两个实体的目的是限制其中一个实体的属性数量,因为在其中一个编辑表单中,应该只能更改一些属性.

因此,为了避免必须使用隐藏的不可编辑属性来保存它们的值,我认为只有一部分属性的单独实体将是一个好主意.

所以我有一个具有所有属性的实体,一个只有一些属性.问题是我得到了这个例外:

`实体类型'ApplicationMapping'和'ApplicationMappingFull'不能共享表'ApplicationMapping',因为它们不在同一类型层次结构中,或者没有有效的一对一外键关系,它们之间具有匹配的主键.

实体配置类如下所示:

class ApplicationMappingFullConfiguration : EntityTypeConfiguration<ApplicationMappingFull>  
{  
  public ApplicationMappingFullConfiguration()  
  {  
    ToTable("ApplicationMapping");  
    HasKey(p => p.Id);  
  }  
}  

class ApplicationMappingConfiguration : EntityTypeConfiguration<ApplicationMapping>  
{  
  public ApplicationMappingConfiguration()  
  {  
    ToTable("ApplicationMapping");  
    HasKey(p => p.Id);  
  }  
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现我想做的事情?这样做有更好/更简单的方法吗?

谢谢!

Pad*_*ddy 4

我建议将单个实体映射到表,但创建两个仅包含表单所需属性的“视图”实体。

这些视图实体可以包含将输入的数据映射回底层实体的方法。