У меня есть устаревшая база данных с 3 таблицами, подобными этой:
Рисование таблиц http://www.bilder -hochladen.net / files / gch8-1.png
Таблица Items содержит всеЭлементы в плане.Таблица Структура определяет отношение между элементами.Родительский элемент определяется company
, year
, planId
и parentItem
таблицы structure
, сопоставляемыми с company
, year
, planId
и id
таблицы item
.
Дочерний элемент определяется company
, year
, planId
и childItem
таблицы structure
, сопоставляемой с company
, year
, planId
и id
таблицы item
.
Я ищу способ отображения: m в nhibernate с использованием hbm или беглых отображений.
Я придумала:
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping namespace="Project.Model" assembly="Project" xmlns="urn:nhibernate-mapping-2.2">
<class name="Item" lazy="true" table="`item`" schema="`dbo`">
<composite-id>
<key-property name="Company" column="`company`" />
<key-property name="Year" column="`year`" />
<key-property name="Planid" column="`planid`" />
<key-property name="ItemId" column="`id`" />
</composite-id>
<!-- Some other properties -->
<set name="Parents" table="`structure`" fetch="select">
<key>
<column name="`company`" />
<column name="`year`" />
<column name="`planid`" />
<column name="`parentItem`" />
</key>
<many-to-many class="Item">
<column name="`company`" />
<column name="`year`" />
<column name="`planid`" />
<column name="`id`" />
</many-to-many>
</set>
<set name="Childs" table="`structure`" fetch="select">
<key>
<column name="`company`" />
<column name="`year`" />
<column name="`planid`" />
<column name="`childItem`" />
</key>
<many-to-many class="Item">
<column name="`company`" />
<column name="`year`" />
<column name="`planid`" />
<column name="`id`" />
</many-to-many>
</set>
<many-to-one name="Plan" class="Plan" not-null="true" fetch="select">
<column name="`company`" />
<column name="`planid`" />
</many-to-one>
</class>
</hibernate-mapping>
Ошибкаоднако это: Repeated column in mapping …
- так что я застрял.Есть предложения?