所以我有一种情况,我有共同的基本类型,但我需要根据子类型映射到不同的视图。
看起来我可以使用通用映射类来处理继承
但是我如何根据子类型有条件地映射到不同的视图?我看到一个 EntityType 属性,但它说它已过时,将在下一个版本中设为私有。
作为一个例子,我有一个 ContactInfo 的基类是联系人类型之间的标准,但值来自不同的地方,具体取决于联系人类型,我将通过 sql 视图处理。
所以我有一种情况,我有共同的基本类型,但我需要根据子类型映射到不同的视图。
看起来我可以使用通用映射类来处理继承
但是我如何根据子类型有条件地映射到不同的视图?我看到一个 EntityType 属性,但它说它已过时,将在下一个版本中设为私有。
作为一个例子,我有一个 ContactInfo 的基类是联系人类型之间的标准,但值来自不同的地方,具体取决于联系人类型,我将通过 sql 视图处理。
使用任何映射引用的实体来自不同的表
class ContactInfo
{
public virtual long Id { get; set; }
public virtual ContactDetails Details { get; set; }
}
public ContactInfoMap
{
...
ReferencesAny(x => x.Details)
.EntityIdentifierColumn("details_id")
.EntityTypeColumn("contactType")
.IdentityType<long>()
.AddMetaValue<FooContactDetails>("1")
.AddMetaValue<BarContactDetails>("4");
}