NHibernate GenericADO Exception

Posted by Ris90 on Stack Overflow See other posts from Stack Overflow or by Ris90
Published on 2010-05-06T07:45:26Z Indexed on 2010/05/06 7:48 UTC
Read the original article Hit count: 349

Filed under:
|
|

Hi, I'm trying to make simple many-to-one association, using NHibernate.. I have class Recruit with this mapping:

<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"/>

which is many-to-one connected to 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>

And create Repository class with method Insert:

 public void Insert(Recruit recruit)
    {
        using (ITransaction transaction = session.BeginTransaction())
        {
            session.Save(recruit);
            transaction.Commit();
        }
    }

then I try to save new recrui to base:

 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);

And have this error

    GenericADOException 
could not insert: [OSiUBD.Models.DAO.Recruit][SQL: INSERT INTO Recruits (lastname, name, medicalReport, dateOfBirth, assignedOnRecruitmentOffice) VALUES (?, ?, ?, ?, ?); select SCOPE_IDENTITY()]

on session.Save

© Stack Overflow or respective owner

Related posts about nhibernate

Related posts about c#