Я новичок в NHibernate и нашел его чрезвычайно интересным. Я пытался сохранить объекты в таблице сопоставления (таблица, которая разрывает отношения «многие ко многим» при проектировании реляционной базы данных), но пока не смог этого сделать. Однако я могу получить данные из таблицы сопоставления, используя мое текущее отображение спящего режима.
Вот как выглядит моя база данных:
Группы (groupId, groupName)
Отчеты (reportID, reportName)
GroupReports (groupId, reportId)
Очень типичные и простые отношения с точки зрения моделирования данных.
Я знаю, что этот вопрос задавался много раз, и я прочитал много из них. Поверь мне, я действительно это сделал.
Вот мое отображение для класса сущностей группы:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Group, DataTransfer" table="GROUPS">
<id name="GroupId">
<column name="groupId" sql-type="int" not-null="true"/>
<generator class="native"/>
</id>
<property name="GroupName" column="groupName" type ="string" length="150" not-null="true"/>
<bag name="Reports" cascade="none" inverse="true">
<key column="groupId"/>
<many-to-many column="reportId" class="DataTransfer.Report, DataTransfer"/>
</bag>
</class>
</hibernate-mapping>
И мое сопоставление для класса сущностей Report ниже:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Report, DataTransfer" table="REPORTS" >
<id name="ReportId" column="reportId" type="int" unsaved-value="0">
<generator class="native"/>
</id>
<property name = "ReportName" column="reportName" type="string" length="250" not-null="true"/>
<bag name="MappedGroups" table="GroupReports" cascade="all" inverse="false" lazy="true">
<key column="reportId"/>
<many-to-many class="DataTransfer.Group, DataTransfer" column="groupId" />
</bag>
</class>
</hibernate-mapping>
Согласно тому, что я прочитал, эти сопоставления должны позволить мне как извлекать, так и сохранять данные сопоставления из ассоциированной таблицы GroupReports. Мой код модульного теста показывает только оператор выбора SQL, без вставок в таблицу сопоставления.
Учитывая мои отображения, что нужно сделать, чтобы сохранить данные отображения?