我正在尝试使用 Fluent API 来使用 TPH 将现有的类层次结构映射到单个表中。在这种情况下,我有一个基类(包含公共属性),然后是 2 个用自己的属性扩展基类的具体类:
class Base
{
// properties
}
class A: Base {}
class B: Base {}
我正在尝试使用自定义类型配置器将类映射到表,我认为我可以这样做:
class BaseConfigurator: IEntityTypeConfiguration<Base>
{
public void Configure(EntityTypeBuilder<Base> builder)
{
builder.ToTable("...");
// more mappings
builder.HasDescriminator(e => e.Type)
.HasValue<A>("A")
.HasValue<B>("B");
}
}
当我尝试运行代码时,我收到一条错误消息,指出基本类型是层次结构的一部分,但没有配置鉴别器值。
既然基类型是抽象的,它只是为了保存公共属性,我怎么能说基类型应该被忽略呢?
谢谢。