标签:c entity-framework-4 ef-code-first
我使用EF Codefirst在自己的表中有对象.现在,我尝试为每个对象生成单独表中的已更改对象生成“归档”.
例如:
public class Person
{
[Key]
public virtual Guid Id { get; set; }
[Required]
public string Name { get; set; }
}
public class Person_Archive : Person
{
[Key]
[Columnn( Order = 1 )]
public override Guid Id { get; set; }
[Key]
[Columnn( Order = 2 )]
public DateTime ChangedAt { get; set; }
public string ChangedBy { get; set; }
}
当我让EF创建模型时,它不包含Person_Archive中Person的属性:-(即使我添加:
modelBuilder.Entity<Person>().ToTable( "Person" );
modelBuilder.Entity<Person_Archiv>().ToTable( "Person_Archiv" );
EF仍然不会重复派生类的属性.
有谁知道如何实现这一目标?
谢谢!
安德烈亚斯
解决方法:
是的,你需要调用MapInheritedProperties方法来做到这一点.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("People");
});
modelBuilder.Entity<Person_Archieve>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("People_Archieve");
});
}
标签:c,entity-framework-4,ef-code-first 来源: https://codeday.me/bug/20190626/1297330.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。