J'ai reçu ce message d'erreur lorsque j'essayais d'exécuter mon programme ORM.SCOPE_IDENTITY lors de l'insertion de valeurs
NHibernate.Exceptions.GenericADOException: « n'a pas pu insérer: [NHibernateWinFormsApp.Employee] [SQL: INSERT INTO employés DÉFAUT VALEURS; sélectionnez SCOPE_IDENTITY()] »
Ceci est mon fichier de mappage EDIT
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateWinFormsApp"
namespace="NHibernateWinFormsApp">
<class name="Employee">
<id name="EmployeeId" column="EmployeeId">
<column name="EmployeeId" not-null="true" />
<column name="FirstName" />
<column name="LastName" />
<generator class="native"/>
</id>
<bag name="Department" table="EmployeeDepartment" >
<key column="EmployeeId" not-null="true" />
<many-to-many class="Department" column="DepartmentId"/>
</bag>
</class>
<class name="Department">
<id name="DepartmentId">
<column name="DepartmentId" not-null="true" />
<column name="DepartmentName" />
<generator class="native"/>
</id>
<bag name="Employee" table="EmployeeDepartment" inverse="true">
<key column="DepartmentId" not-null="true"/>
<many-to-many class="Employee" column="EmployeeId"/>
</bag>
<property name="DepartmentName" type="string"/>
</class>
</hibernate-mapping>
Et, dans ma session:
DepartmentRepository departmentRepository = new DepartmentRepository(session);
// get department by id
Department department = departmentRepository.GetById(int.Parse(textDepartment.Text));
employeeData.Department = new List<Department>();
employeeData.Department.Add(department);
department.Employee.Add(employeeData);
Est-ce que quelqu'un sait comment résoudre ce petit problème?
Copie possible de [n'a pas pu insérer select SCOPE \ _IDENTITY() fluent nhibernate un à plusieurs] (https://stackoverflow.com/questions/25096975/could-not-insert-select-scope-identity-fluent-nhibernate -one-to-many) –
@ahmedabdelqader Je ne suis pas sûr de pouvoir être d'accord. S'il te plaît, dis-moi si j'ai tort. :) – user7879148
Est-ce le message d'erreur complet? Pour moi, il semble tronqué. SQL-Server devrait en dire plus. Inspectez les exceptions internes, recherchez 'SqlException' et consultez leurs propriétés' Errors'. Sinon, capturez l'insertion SQL défectueuse et relisez-la directement sur votre db. –