2011-11-24 55 views
0
插入

我有以下類別:鏈接表不是在NHibernate的

Hotel: ID, ..., IList<Photo> Photos 
Photo: ID, Url 

,並在數據庫中的相應的「酒店」和「照片」表和一個鏈接表之間包含這些ID:

HotelPhotos: HotelPhotoID, HotelID (linked to PK HotelID from Hotels table), PhotoID (linked to PK PhotoID from Photos table) 

的酒店類的配置文件是:

...other fields mapped 
<bag name="Photos" table="TravelRoutePhotos" inverse="true" cascade="all" lazy="false"> 
    <key column="TravelRouteID" /> 
    <many-to-many class="TravelAssistant.Model.HelperModels.Feedback.Photo" column="PhotoID"/> 
</bag> 

每當我添加/更新酒店的照片,我得到正確的插入照片和酒店數據,但HotelPhotos表仍然是空的。 我試過更新後刷新會話,嘗試在配置文件中將「bag」設置爲「idbag」,從配置文件中刪除「inverse」,但stil結果相同。

有人可以幫我嗎?

的Tamas

EDIT的HotelPhoto類不存在;只有鏈接表HotelPhotos。

+0

你談論HotelPhotos,但你顯示的映射是標籤... –

+0

是的,你是對的。我編輯了我的問題。 (我在Hotel實體中也有一個標籤字段,但問題對於任何鏈接表都是一樣的)。 –

+0

你的對象之間是否有雙向鏈接?如果是這樣,你可能不會以正確的方式連接點。你可以發佈你如何添加物品到包集合的代碼嗎? – TedOnTheNet

回答

0

不清楚是否已經錯誤地編輯更改映射時,但是從你的代碼,因爲它是你的映射條目應

<bag name="Photos" table="HotelPhotos" inverse="true" cascade="all" lazy="false"> 

你還需要確保你」重新使用hotel.Photos.Add(photo);或類似的。你一定對你的映射有了正確的想法,只要你不需要Photo類中的Hotels集合,你就不需要Photo.hbm.xml中的引用。