0

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

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

http://geekswithblogs.net/nharrison/archive/2010/07/09/inheriting-a-class-map-in-fluent-nhibernate.aspx

但是我如何根据子类型有条件地映射到不同的视图?我看到一个 EntityType 属性,但它说它已过时,将在下一个版本中设为私有。

作为一个例子,我有一个 ContactInfo 的基类是联系人类型之间的标准,但值来自不同的地方,具体取决于联系人类型,我将通过 sql 视图处理。

4

1 回答 1

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");
}
于 2012-10-23T05:39:17.877 回答