2

異なる DB テーブルのフィールドで構成されるエンティティを持つことができるように、NHibernate マッピングを記述する方法はありますか?

たとえば、個人と住所のテーブルがあり、個人オブジェクトに住所フィールドを表示したいとします。

次のようなエンティティが必要です。

public class person
{
    public virtual Guid Key{get; set;}
    public virtual string Name {get; set;}
    public virtual string Age {get; set;}
    public virtual string Address1 {get; set;} //from address table
    public virtual string Address2 {get; set;} //from address table

}
4

3 に答える 3

3

Fluent NHibernate を使用している場合は、次の例のように WithTable を使用できます。

public class PersonMap : ClassMap<Person>
{
  public PersonMap()
  {
    Id(x => x.Key, "[Key]"); // Explicitly specify escaped column name to 
                             // avoid problems with reserved words
    Map(x => x.Name);
    Map(x => x.Age);

    WithTable("Address", m =>
    {
      m.Map(x => x.Address1);
      m.Map(x => x.Address2);
    });
  }
}
于 2009-02-25T10:31:03.617 に答える
1

ここに必要なものがあると思います。Fluent NHibernate 部分のサポートについてはよくわかりません。また、このアイデアの有効性についてもわかりません。

于 2009-02-25T10:30:27.940 に答える
0

Person と Address の間に多対多のテーブルを使用することも検討できます。その場合、必要な数のアドレスのリストを保持できるプロパティ「Addresses」を持つことが理にかなっています。

これを実現するために、マッピングを使用してマッピング (またはコレクション マッピングが最適に機能するもの) を実行できます。

于 2009-02-26T01:33:07.037 に答える