.net - NHIbernate:ICompositeUserTypeでバッグをマップする方法

.net nhibernate orm

不変タイプのコレクションを持つクラスがあり、カスタムICompositeUserTypeでマップしたいとします

public class Foo
{
    public long Id { get; protected set; }

    public virtual IList<Bar> Bars { get; set; }
}

//immutable
public class Bar
{
    private _blah;
    private _halb;

    public Bar(string blah, string halb)
    {
        _blah = blah; _halb = halb;
    }

    public Blah { get { return _blah; } }
    public Halb { get { return _halb; } }
}


カスタムタイプが必要に応じてコンストラクターを呼び出せるように、複合ユーザータイプを使用するようにFooでバッグのマッピングを設定するにはどうすればよいですか?

私はこれを試しましたが、複合要素ではタイプが利用できません。

<bag name="Bars" table="FooBars" lazy="true">
   <key column="FooId" foreign-key="FK_Bars_FooId" />
   <composite-element class="Doman.Bar, Domain" type="Integration.UserTypes.BarCompositeUserType, Integration">
       <property name="Blah">
          <column name ="BarBlah" sql-type="char(2)"/>
       </property>
   </composite-element>
</bag>


ただし、NHibernateが「composite-element」の「type」属性を認識しないため、これは機能しません。

ICompositeUserTypeでバッグをマップするにはどうすればよいですか? (私はNHibernate 3.2を使用しています)
答え
プロパティと変換がICompositeUserType内で指定されているため、composite-elementではなくelement

<element type="Integration.UserTypes.BarCompositeUserType, Integration">
  <column name="BarBlah" />
  <column name="BarHalb" />
</element>
関連記事

c# - WPFウィンドウコンストラクターを使用してカルチャを変更できますか?

c# - msiインストール後にexeを実行すると、起動チェックボックスが表示されますが、アプリが実行されません

c# - 0MQ Windows GUIのベストプラクティス

asp.net - ASP.NETおよびYouTubeプライバシー

.net - Powershell-XML構成データを検索してレジストリ値で置き換える

.net - 集中型DBを備えたマルチユーザーデスクトップアプリケーションアーキテクチャに最適なテクノロジー[閉まっている]

.net - コンテンツを1つのプロパティに設定した、属性のない単一の要素としてクラスをシリアル化する

c# - WPFデータグリッドの行にジャンプ

c# - .XMLをロードするためのFileUpload

.net - MethodBase.GetCurrentMethodはいつ信頼性/予測可能ですか?