我有以下实体Book
,我想在其中对书籍进行分组(其中的每本书都BookSeries
应该参考该系列中的所有其他书籍)。我希望我的班级将具有如下定义:
public class Book {
public int Id { get; set; }
public string Title { get; set; }
public List<Book> BookSeries { get; set; }
}
我希望 NHibernate 映射如下:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" namespace="Model" assembly="Model">
<class name="Book" table="Books" lazy="false">
<id name="Id" column="Id" type="int" unsaved-value="">
<generator class="native"/>
</id>
<bag name="BookSeries" table="BookSeries">
<key column="Id"/>
<many-to-many class="Book" column="BookSeriesId" />
</bag>
</class>
</hibernate-mapping>
现在,我有以下 3 个问题:
- 模拟这种关系(自我引用)的最佳方法是什么?
- 这应该如何使用 NHibernate 映射?
- 在 BookSeries 中插入新书时,如何确保新书引用了该系列中的所有书(反之亦然)?