-1

私はNHibernateにかなり慣れていません。ウェブ上で、NHibernateマッピングに関する情報をたくさん見つけていますが、この情報を見つけるにはあまりにも愚かです。

だから問題は、私は次のモデルを持っているということです:

データ・モデル

これが私が見たいものです。2つのアドレスプロパティを持つ1人のきれいな人。

データベースでは、これを1つのテーブルに保持したいと思います。したがって、Person行にはShippingStreetname列とStreetname列があり、一方はShippingAddress.Streetnameにマップされ、もう一方はAddress.StreetNameにマップされます。

流暢なインターフェースに関する記事を見つけましたが、XML構成を介してこれを行う方法をまだ理解していません。

前もって感謝します!

更新:私はこれに対する解決策を自分で見つけました。これはノードを介して実行でき、かなり簡単に機能します。

AddressとShippingAddressのマッピングを実現するには、以下を追加する必要があります。

<component name="Address" class="Address">
  <property name="Streetname"></property>
  <property name="Zip"></property>
  <property name="City"></property>
  <property name="Country"></property>
</component>

<component name="ShippingAddress" class="Address">
  <property name="Streetname" column="ShippingStreetname" />
  <property name="Zip" column="ShippingZip" />
  <property name="City" column="ShippingCity" />
  <property name="Country" column="ShippingCountry" />
</component>
4

3 に答える 3

1

Ok。私は自分で解決策を見つけました。重要なのは XML 構成の構造であり、かなりうまく機能します。

方法は次のとおりです。

<component name="Address" class="Address">
  <property name="Streetname"></property>
  <property name="Zip"></property>
  <property name="City"></property>
  <property name="Country"></property>
</component>

<component name="ShippingAddress" class="Address">
  <property name="Streetname" column="ShippingStreetname" />
  <property name="Zip" column="ShippingZip" />
  <property name="City" column="ShippingCity" />
  <property name="Country" column="ShippingCountry" />
</component>
于 2008-10-20T14:18:02.270 に答える
0

これを 2 つの関係として構成できます。例えば

<many-to-one name="ShippingAddress" class="Yournamespace.Address"/>
<many-to-one name="Address" class="Yournamespace.Address"/>
于 2008-10-20T13:11:03.420 に答える
0

アドレスの ID も必要ありません。ID を維持するのにどれだけの費用がかかるか考えてみてください。並行性の問題があったり、一意性が必要だったりします。これが ValueObjects の目的です (System.ValueObject と混同しないでください。ValueObject の DDD 定義を参照してください)。この場合、Address は ValueObject であるため、ID は必要ありません。Address のコレクションが必要な場合は、"" のようにマップしますhttp://www.nhforge.org/doc/nh/en/index.html#collections-ofvaluesを参照してください。

于 2011-07-07T20:53:33.427 に答える