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 に答える