ORMプログラムを実行しようとすると、このエラーメッセージが表示されます。値を挿入するときのSCOPE_IDENTITY
NHibernate.Exceptions.GenericADOExceptionは:「挿入できませんでした: [NHibernateWinFormsApp.Employee] [SQL:INSERT INTO従業員DEFAULT VALUES を。選択SCOPE_IDENTITY()]」
これは私のマッピングファイル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>
そして、私のセッションに:
は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);
誰もがこの小さな問題を解決する方法を知っていますか?
[選択したSCOPE \ _IDENTITY()を流暢にnhibernate 1から多数]を挿入できませんでした(https://stackoverflow.com/questions/25096975/could-not-insert-select-scope-identity-fluent-nhibernate -one-to-many) –
@ahmedabdelqader私が同意できるかどうかわかりません。私が間違っているかどうか教えてください。 :) – user7879148
これは完全なエラーメッセージですか?私には、それは切り詰めて見えます。 SQL Serverはもっと情報を伝える必要があります。内部例外を検査し、 'SqlException'を探し、' Errors'プロパティを調べます。それ以外の場合は、失敗した挿入SQLをキャプチャし、直接データベース上で再生します。 –