1

我想通过数据注释创建鉴别器列。

[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"));

无论如何,我需要在选择结果中有鉴别器列值

4

1 回答 1

0

我想通过数据注释创建鉴别器列。

您不能注释不存在的属性。

使用 TPH 继承,鉴别器属性不是类模型的一部分。这是因为将其值设置为另一种类型的值会产生歧义:类型 A,标记为类型 B。所以 EF 只是阻止开发人员这样做。

所以:映射TPH继承只能通过fluent映射来完成。

无论如何,我需要在选择结果中有鉴别器列值

如果您需要代码中的鉴别器值,这通常表明您要么不按应有的方式应用继承,要么根本不应该使用继承。反对使用继承的一个指标是在某些情况下对象的“类型”应该在运行时更改(即,判别器的值被更改)。

于 2016-03-19T18:05:25.980 回答