我想通过数据注释创建鉴别器列。
[Table("Book")]
public partial class Book
{
public long BookID { get; set; }
[StringLength(100)]
public string name { get; set; }
public int? page { get; set; }
}
由流利绘制的映射
modelBuilder.Entity<Book>()
.Map<StoryBook>(m => m.Requires("typetitle").HasValue("story"));
无论如何,我需要在选择结果中有鉴别器列值
我想通过数据注释创建鉴别器列。
您无法为不存在的属性添加批注。
使用 TPH 继承时,鉴别器属性不是类模型的一部分。这是因为将其值设置为另一种类型的值会产生歧义:类型 A,标记为类型 B。因此,EF 只是阻止开发人员这样做。
所以:映射TPH继承只能通过流畅的映射来完成。
无论如何,我需要在选择结果中有鉴别器列值
如果你在代码中需要鉴别器值,这通常表明你要么没有按照应有的方式应用继承,要么根本不应该使用继承。反对使用继承的一个指标是,在某些情况下,对象的"类型"应该在运行时更改(即鉴别器的值被更改)。