所以我有一种情况,我有共同的基本类型,但我需要根据子类型映射到不同的视图。
看起来我可以使用通用映射类来处理继承
但是我如何根据子类型有条件地映射到不同的视图?我看到一个EntityType属性,但它说它已过时,并将在下一个版本中变为私有。
作为一个例子,我有一个ContactInfo的基类是联系人类型之间的标准,但是值取决于联系人类型来自不同的地方,我将通过sql视图处理。
答案 0 :(得分:0)
使用任何映射,引用的实体来自不同的表
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");
}