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