私のオブジェクトモデルは、チャンネルデータとフィード項目(個々のポッドキャスト)を持つポッドキャストフィードを表します。これは以下のように構成されています。私のデータベースで [NHibernate]複数のオブジェクトタイプを1つのテーブルにどのようにマップできますか?
PodcastFeed
ChannelData // Property on PodcastFeed
ITunesChannelData // Property on ChannelData
FeedItems // Property on PodcastFeed; collection of PodcastFeedItems
PodcastFeedItem
ITunesItemData // Property on PodcastFeedItem
は、PodcastFeed、ChannelDataとITunesChannelData上のフィールドは、すべてのテーブルに格納されています。同様に、PodcastFeedItemとITunesItemDataのフィールドはすべて1つのテーブルに格納されます。 PodcastFeedからPodcastFeedItemへの一対多の関係があります。このようにそれらを格納する理由は、異なるオブジェクトタイプ間に一対一のマッピングが存在するからである(例えば、ChannelDataは各ポッドキャストフィードに固有である)。
PodcastFeedをPodcastFeedItemにマッピングするのは大丈夫ですが、どのように完了できないかは、PodcastFeedを構成するさまざまなクラスに渡ってフィードテーブルのデータを「分割する」方法です。私はNHibernateマッピングをFeedsテーブルからこれらのタイプに正常に作成しましたが、PodcastFeedオブジェクトにアクセスすると、ChannelDataプロパティはnullになります。おそらくこれは、NHibernateが上記のような階層を作成することを知らないためです。
FWIW、私はマッピングファイル内で次の行を試してみました。NHibernateは、テーブルの存在しない "ChannelData"列からデータを読み込もうとします。
<property name="ChannelData" type="ChannelData" />
私はこれを有効にするには、NHibernateの中でユーザータイプを作成する必要がありますか、または私はいくつかの組み込みのトリックをしないのですか?
@alastairs ...新しい文書を指すようにあなたのリンクを更新できますか?リンクが壊れていると表示されます。 –
@RichardB要求通りにリンクを更新しました。 – alastairs
Thx。私は実際にそこに私を得た別のリファレンスガイドを発見した...しかし、これは、stackoverflowの完全性のためには、確かに良いです。 –