Как мне объединить две таблицы как многие-к-одному и один-ко-многим в nHibernate.Они оба имеют тот же PLAN_ID, что и ключевой столбец.Мои базы данных уже существуют.
Ниже приводится сопоставление, которое я использую, и ошибка, которую я получаю:
Таблица: PLANN (- один -)
PLAN_ID <-- PRIMARY KEY
START_DATE
CHECK_CHAR
...
Таблица: PLANN_DOCUMNET (- для многих -)
PLAN_ID <-- PRIMARY KEY
DOC_ID <-- ID to a DOCUMENT table
DOC_NAME
DOC_TYPE
Планируемый класс:
public virtual... PlanId, StartDate, CheckChar, PlanStatus,
public virtual ISet<DocsysHoldingDoc> DocsysHoldingDocs { get; set; }
public virtual DocsysHoldingDoc DocsysHoldingDoc { get; set; }
PlannDocument Class:
public virtual...PlanId, DocId, DocName, DocType
public virtual Plann PlannItem { get; set; }
Планируемый HBM XML
<class name="Plann" abstract="true" table="PLANN">
<id name="PlanId" column="PLAN_ID"
<generator class="assigned"/>
</id>
<property name="StartDate" column="START_DATE" />
<property name="CHECK_CHAR" column="CHECK_CHAR" />
...
<set name="PlannDocument" table="PLANN_DOCUMNET">
<key column="PLAN_ID"></key> //<<KEY IN JOINING TABLE BUT ALSO ID IN THIS TABLE
<one-to-many class="DocsysHoldingDoc"/>
</set>
</class>
PlannDocument HBM XML
<class name="PlannDocument" abstract="true" table="PLANN_DOCUMNET">
<id name="PlanId" column="PLAN_ID" type = "int">
<generator class="assigned"/>
</id>
<property name="DocId" column="DOC_ID" />
<property name="DocName" column="DOC_NAME" />
<property name="DocType" column="DOC_TYPE" />
<many-to-one name="Plann" column="PLAN_ID"></many-to-one>
</class>
ОШИБКА: NHibernate.MappingException: 'Невозможно создать оператор вставки для класса <>. PlannDocument: произошла ошибка при добавлении идентификатора класса'
ArgumentException: В этом построителе SQL уже добавлен столбец PLAN_ID Имя параметра: columnName
Я что-то тут не так делаю ??