我有以下代码:
public class Hotel
{
public int ID
{
get;set
}
public IList<Photo> Photos
{
get;set;
}
//...other code
}
public class Photo
{
public int ID
{
get;set;
}
//...other fields
}
在数据库中,我有以下表格:
Photo: ID, Url, //.. other fields
HotelPhoto:ID, PhotoID, HotelID
Hotel:ID, Location, //..other fields
Hotel <--> HotelPhoto
和HotelPhoto <--> Photo
之间的关系。
我的问题是:我可以以某种方式配置Hotel
类和Hotel
表之间的映射,以获取Photo
的列表,而无需创建新的类HotelPhoto
吗? (我想要一张照片列表,而不是要从中获取照片的HotelPhoto列表。)
不知何故,我想从Hotel类访问Photo表而没有任何类的HotelPhoto,因为知道表HotelPhoto只包含Hotel和Photo表的ID。
提前致谢, Tamash
答案 0 :(得分:3)
您可以使用many-to-many
- 映射,例如:
酒店映射文件,应该包含某事。像这样:
<set name="Photos" table="HotelPhoto">
<key column="HotelId" />
<many-to-many class="Photo" column="PhotoId"/>
</set>
对于照片映射文件,您可以使用......像这样:
<set name="Hotels" table="HotelPhoto">
<key column="PhotoId" />
<many-to-many class="Hotel" column="HotelId"/>
</set>
请注意,映射未经过测试,并假设Photo有一个酒店列表(否则您的db-schema对我来说没有意义)。
您可以在此处找到文档。 http://nhibernate.info/doc/nh/en/index.html#collections-ofvalues