Fluent nhibernate 基于子类型映射到其他视图

Fluent nhibernate 基于子类型映射到其他视图,fluent-nhibernate,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent Nhibernate Mapping,所以我有一种情况,我有公共的基类型,但我需要根据子类型映射到不同的视图 看起来我可以使用泛型映射类来处理继承 但是如何根据子类型有条件地映射到不同的视图呢?我看到一个EntityType属性,但它表示它已过时,并将在下一个版本中变为私有 例如,我有一个ContactInfo基类,它在联系人类型之间是标准的,但值来自不同的位置,具体取决于联系人类型,我将通过sql视图来处理这个问题。使用任何映射,引用的实体来自不同的表 class ContactInfo { public virtual

所以我有一种情况,我有公共的基类型,但我需要根据子类型映射到不同的视图

看起来我可以使用泛型映射类来处理继承

但是如何根据子类型有条件地映射到不同的视图呢?我看到一个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");
}
class ContactInfo
{
公共虚拟长Id{get;set;}
公共虚拟联系人详细信息{get;set;}
}
公共联系人信息地图
{
...
引用任意(x=>x.Details)
.EntityIdentifierColumn(“详细信息”)
.EntityTypeColumn(“contactType”)
.IdentityType()
.AddMetaValue(“1”)
.AddMetaValue(“4”);
}

我只是为每个实体复制了代码。这意味着每种类型都有一张地图