Исключение NHibernate GenericADO - PullRequest
0 голосов
/ 06 мая 2010

Я пытаюсь создать простую ассоциацию "многие к одному", используя 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()]

в сеансе. Сохранение

1 Ответ

0 голосов
/ 07 мая 2010

Похоже, вам нужно сделать столбец [ID] таблицы Recruits идентичным столбцом в вашей схеме SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...