0

編集:

こんにちは、この質問に答えるために編集を試みています。質問を改善するために、要点を要約したバージョンを次に示します。

以下のコードは、流暢な nhibernate を使用して値オブジェクトを個別のテーブルにマッピングする場合の方法ですか、それとも別の方法がありますか?


やあ、

この質問の目的のために、流暢に構成された nhibernate を使用しています。

私は着実にDDDを学んでいますが、値オブジェクトのマッピングを明確にした後です。値オブジェクトをコンポーネントとしてマッピングすることに関する多くの情報があるようです。ただし、場合によってはデータベースを正規化したいので、値オブジェクトに永続性 ID を付与します (これが正しければ、DDD 値オブジェクトの規則に違反しません)。

SO でこの質問を見たことがありますが、実際の値オブジェクトをセットアップしてマップする方法についてもう少し情報が欲しいです。

値オブジェクトをエンティティを表すテーブルにマッピングするときは快適です。たとえば、アドレス値オブジェクトを顧客テーブルにコンポーネントとしてマッピングします。

私のクエリは、別のテーブルに配置したい値オブジェクトをマッピングするときにあります。以下のようにclassmapを使用して値オブジェクトをマップする最良の方法はありますか? 純粋に nhibernate の永続性のために存在する Id を無視する予定です。

public class Address
{
  protected virtual int id {get;}
  public virtual string firstLine {get;}
  public virtual string city {get;}
  public virtual string postcode {get;}
}

public class AddressMap : ClassMap<Address>
{
  public AddressMap()
  {
    Id(x => x.Id);
    Map(x=> x.firstline);
    Map(x=> x.city);
    Map(x=> x.postcode);
  }
}

前もって感謝します。

4

1 に答える 1