我有两个表具有完全相同的架构。如何在代码中创建1个实体并将该单个实体映射到两个不同的表?
我尝试的一个选项是创建一个从第一个继承的第二个实体,但没有定义其他属性:
public class EntityA {
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
public string PropertyD { get; set; }
public string PropertyE { get; set; }
}
public class EntityB : EntityA {
}
在数据库中,我将有两个表EntityA
和EntityB
,它们具有完全相同的架构。
使用EF 6或更早版本,看来我必须做这样的事情:
modelBuilder.Entity<Entity>()
.Map(map => { map.ToTable("EntityA") })
.Map(map => { map.ToTable("EntityB") });
但是,当我尝试在EF Core中执行此操作时,似乎找不到Map方法。
最好的解决方案是什么,还是我在C#中只有两个实体看起来完全相同?
答案 0 :(得分:1)
两个实体都来自具有所有公共属性的公共基类。这样,他们共享相同的类,可以在强制转换后在您的代码中共享 ,但仍然保留了将来需要时有所不同的独创性。
⚠️缺点是,您将在以后的任何更改中手动更新这些类。