NHibernate中没有插入多对多关系的链接表

时间:2011-11-24 22:58:02

标签: asp.net-mvc database nhibernate

我有以下课程:

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

并在数据库中显示相应的“Hotels”和“Photos”表以及包含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”,从配置文件中删除“反向”,但是仍然得到相同的结果。

有人可以帮帮我吗?

的Tamas

编辑 HotelPhoto类不存在;只有链接表HotelPhotos。

1 个答案:

答案 0 :(得分:0)

不清楚在更改映射时是否编辑错误,但是从代码中编辑,因为它是您的映射条目

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

   

您还需要确保使用hotel.Photos.Add(photo);或类似内容。你肯定对你的映射有了正确的想法,只要你不想在你的Photo类中使用Hotels集合,你就不需要Photo.hbm.xml上的引用。