如何解决如何使用Entity Framework Code FirstFluent API一次从多个类的继承类映射数据成员?
| 如果有一个类,请说Entity,从中创建多个类。我该如何做,例如将TimeStamp数据成员从默认列类型datetime映射到datetime2(7)。我可以像这样单独映射它:protected override void OnModelCreating(DbModelBuilder mb)
{
mb.Entity<Class1>()
.Property(h => h.TimeStamp)
.HasColumnType(\"datetime2\")
}
但是我更愿意对Entity类执行一次,并将其应用于从Entity继承的每个类。如果我执行上述代码,但是使用Entity而不是Class1,我认为这使Entity成为复杂类型。这将所有内容都放在一个表中,而不是我想要的表中,这就是TPC(每种具体类型的表)。
以下是示例类:
Entity.cs
public class Entity()
{
public long ID { get; private set; }
public DateTime TimeStamp { get; set; }
}
Class1.cs
public class Class1 : Entity
{
public string SomeOtherDataMember1 { get; set; }
}
Class2.cs
public class Class2 : Entity
{
public string SomeOtherDataMember2 { get; set; }
}
顺便提一下(这也是我研究的下一步),如何使数据库将Entity中的ID识别为Class1和Class2的主键。显然,ID被识别为在Class1和Class2中,但是它不是主键。与TimeStamp相似,是否可以用一点代码使其成为所有继承类的主键,而不是为每个继承类编写它?
解决方法
最后,我无法一次调用就映射它,并且做了多次。为了在一次呼叫中做到这一点,您需要TPH或TPT,而我正在使用TPC,而Entity没有自己的表。
就旁注而言,当前无法在EF Code First中将其设为主键并使用TPC。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。