Я пытаюсь создать простую ассоциацию "многие к одному", используя NHibernate .. У меня есть класс Recruit с этим отображением:
<class name="Recruit" table="Recruits">
<id name="ID">
<generator class="native"/>
</id>
<property name="Lastname" column="lastname"/>
<property name="Name" column="name"/>
<property name="MedicalReport" column="medicalReport"/>
<property name="DateOfBirth" column ="dateOfBirth" type="Date"/>
<many-to-one name="AssignedOnRecruitmentOffice"
column="assignedOnRecruitmentOffice"
class="RecruitmentOffice"/>
, который подключен к RecruitmentOffices по принципу «многие к одному»:
<class name="RecruitmentOffice" table="RecruitmentOffices">
<id name="ID" column="ID">
<generator class="native"/>
</id>
<property name="Chief" column="chief"/>
<property name="Name" column="name"/>
<property name ="Address" column="address"/>
<set name="Recruits" cascade="save-update" inverse="true" lazy="true">
<key>
<column name="AssignedOnRecruitmentOffice"/>
</key>
<one-to-many class="Recruit"/>
</set>
И создать класс репозитория с помощью метода Insert:
public void Insert(Recruit recruit)
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(recruit);
transaction.Commit();
}
}
Затем я пытаюсь сохранить новых рекруи на базу:
Recruit test = new Recruit();
RecruitmentOffice office = new RecruitmentOffice();
ofice.Name = "test";
office.Chief = "test";
test.AssignedOnRecruitmentOffice = office;
test.Name = "test";
test.DateOfBirth = DateTime.Now;
RecruitRepository testing = new RecruitRepository();
testing.Insert(test);
И есть эта ошибка
GenericADOException
could not insert: [OSiUBD.Models.DAO.Recruit][SQL: INSERT INTO Recruits (lastname, name, medicalReport, dateOfBirth, assignedOnRecruitmentOffice) VALUES (?, ?, ?, ?, ?); select SCOPE_IDENTITY()]
в сеансе. Сохранение