2011-11-24 18 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中的引用。