我的對象模型代表播客供稿,包含頻道數據和供稿項目(單個播客)。該結構如下:[NHibernate]如何將多個對象類型映射到一個表中?
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上的字段都存儲在一個表中。從PodcastFeed到PodcastFeedItem有一對多的關係。以這種方式存儲它們的原因是因爲在不同對象類型之間存在一對一映射(例如,ChannelData對於每個播客訂閱源都是唯一的)。
我可以將PodcastFeed映射到PodcastFeedItem,但我無法完成的是如何在組成PodcastFeed的不同類中對「Feeds」表中的數據進行「分區」。我已經成功地將Feeds表中的NHibernate映射創建爲這些類型,但是當我訪問PodcastFeed對象時,ChannelData屬性爲null。大概這是因爲NHibernate不知道如上所述創建層次結構。我試過我的映射文件中沒有成功的以下行(NHibernate嘗試從表中不存在的「ChannelData」列中加載數據)。
<property name="ChannelData" type="ChannelData" />
我需要在NHibernate中創建一個用戶類型來啓用它,還是我缺少一些內置的技巧?
我的「圖表」沒有描述一個對象繼承層次結構,它描述了一個包含其他對象成員的對象(因此是「Property on ...」註釋)。 雖然這個鏈接很有幫助;我實際上是在組件映射之後,碰巧是上一章。 – alastairs 2009-06-07 00:59:17
啊,我的歉意......我不知道那個耀眼的「財產」評論到處都是:P – jrista 2009-06-07 01:52:40