2009-07-02 28 views
0

NHibernateを使用してプロパティのプロパティを設定するにはどうすればよいですか?ここでNHibernateでプロパティのプロパティを設定する方法

は一例です

public class Person 
{ 
    private FullName _subClassProperty = new FullName(); 

    public FullName Name 
    { 
     get { return _subClassProperty; } 
     set { return _subClassProperty; } 
    } 
} 

public class FullName 
{ 
    public virtual string FirstName { get; set; } 
    public virtual string LastName { get; set; } 
} 

次のようになり、データベースのテーブルにシリアル化され(単なる例!):私は、マッピングを書きたい

table Person { 
    FirstName varchar, 
    LastName varchar 
} 

Personクラスのために、NHibernateはPersonのFullNameプロパティのFirstNameとLastNameプロパティにアクセスします。人をデシリアライズする。 I NHibernateがFullNameクラスをインスタンス化したい場合、PersonクラスはまだFullNameクラスのインスタンス化を担当する必要があります。

これはIPropertyAccessorを使用している可能性がありますが、これを達成する方法に関する多くのドキュメントは見つかりません。誰かがNHibernate初心者を助けることができますか?

答えて

2

これは私にとってNHibernateコンポーネントの古典的な使用例のようです。あなたは、XMLを使用してマッピングしている場合は、このような何か:

<component name="FullName" class="YourNamespace.FullName, YourAssembly"> 
    <property name="FirstName" type="String" /> 
    <property name="LastName" type="String" /> 
</component> 

あなたが流暢使用している場合:

Component(p => p.FullName, m => 
{ 
    m.Map(p => p.FirstName); 
    m.Map(p => p.LastName); 
}); 
+0

をクールOKああ、私はそれを試してみましょう。私が読んだのは、コンポーネントが自分のシナリオで使用されていたものの、後方にあり、1つのクラスにマップしたい2つのテーブルがあるということでした。 – cbp

関連する問題