У меня есть следующая структура базы данных, и мне нужно создать соответствующие файлы nHibernate Mapping. Проблема, с которой я сталкиваюсь, - это одно-много, много-одно и сопоставления пакетов. Мои текущие данные сопоставления также ниже, любая помощь оценена, чтобы понять это.Сопоставление структуры БД с файлами сопоставления nHibernate
FABMatrix
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="FABMatrix" table="FABMatrix" lazy="true">
<cache usage="nonstrict-read-write"/>
<id name="id" column="ID">
<generator class="identity"/>
</id>
<property name="Name" column="ProductName"/>
<bag name="FABData" table="FABMatrix_to_FABMatrixData">
<key column="FABMatrixId"/>
<many-to-many class="FABMatrixData" column="FABDataId"/>
</bag>
<property name="DateCreated" column="DateCreated"/>
<property name="DateModified" column="DateModified"/>
</class>
</hibernate-mapping>
FABMatrixData
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="FabMatrixData" table="FABMatrixData" lazy="true">
<cache usage="nonstrict-read-write"/>
<id name="id" column="ID">
<generator class="identity"/>
</id>
<property name="Text" column="Text"/>
<one-to-one name="Type" class="FABType"></one-to-one>
<property name="DateCreated" column="DateCreated"/>
<property name="DateModified" column="DateModified"/>
</class>
</hibernate-mapping>
FABType
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="FABType" table="FABTypes" lazy="true">
<cache usage="nonstrict-read-write"/>
<id name="id" column="ID">
<generator class="identity"/>
</id>
<property name="Name" column="Name"/>
<many-to-one name="Data" class="FABMatrixData" column="FABTypeId">
</many-to-one>
<property name="DateCreated" column="DateCreated"/>
<property name="DateModified" column="DateModified"/>
</class>
</hibernate-mapping>
Я думаю, что вы получили понятия смешались. FABMatrixData должен иметь много-к-одному для FABType, а не один к одному. И FABType не должен иметь ни одного, либо обратного пакета FABMatrixData, а не много-к-одному. –
Немного не имеет значения, но почему вы не используете Fluent NHibernate? Это было бы легче сопоставить, поскольку оно проверяется во время компиляции. Все перечисленное может быть легко отображено с использованием FNH. Если вам нужна помощь в FNH, дайте мне знать. –