0

エンティティの一般的なバージョン管理されていないデータを含むテーブル A があります。特定のエンティティ タイプのバージョン管理されたデータを含むテーブル B、C、D もあります。これらのテーブルはすべて、テーブル A を参照しています。

タスクは、テーブル A を参照するテーブル B に格納されているエンティティのタイプのプロパティのマッピングを追加し、テーブル A の識別子に基づいてテーブル B からエンティティを取得する方法のルールを指定することです (たとえば、 、エンティティの最新バージョンを取得します)。

それはNHibernateで可能ですか?

4

2 に答える 2

0

Ayende によるこの投稿をご覧ください。これは、階層ごとのテーブルまたはサブクラスごとのテーブルを使用してマップできます。前者を選択した場合は、テーブル A に識別子列を追加する必要があります。

于 2010-05-31T16:44:12.987 に答える
0
class TableA
{
    public virtual int Id { get; set; }

    internal virtual IList<TableB> Bs { get; set; }
    public virtual TableB LatestB { get { return Bs[0]; } set { Bs.Insert(0, value); } }
}

class TableAMap : ClassMap<TableA>
{
    public TableAMap()
    {
        HasMany(x => x.Bs)
            .KeyColumn("a_id")
            .OrderBy("Version desc");
    }
}
于 2011-10-12T16:01:31.510 に答える