未在TPT层次结构中间映射抽象类

时间:2015-02-06 06:25:50

标签: c# entity-framework entity-framework-6 table-per-type

我将Table-Per-Type层次结构中的这些实体作为我模型的一部分:

// mapped to table "Templates"
public abstract class Template {}

// not mapped, and must not be mapped
public abstract class TextualTemplate : Template {}

// mapped to table "TextTemplates"
public class TextTemplate : TextualTemplate {}

// mapped to table "TextFieldTemplates"
public class TextFieldTemplate : TextualTemplate {}

映射由EntityTypeConfiguration个后代的数量设置 TextTemplateTextFieldTemplate的映射包含继承自TextualTemplate的属性的显式映射表达式,因为数据库中的表包含适当的字段,但不包含从Template继承的属性。< / p>

当我尝试加载Template时,我收到的错误如下:

  

无效的列名column_from_TextualTemplate_entity_1
  ...
  列名column_from_TextualTemplate_entity_n无效   列名Discriminator

无效

我查看了一个查询,该查询被发送到数据库,看起来像EF假定,TextualTemplate被映射,或者它试图在{{1}中找到这些列} table。

我知道,我可以丢弃Templates类,并分别在TextualTemplateTextTemplate中复制属性,但这正是我试图避免的。

有没有办法告诉EF,这些列应该在表中找到继承类型?

0 个答案:

没有答案