【发布时间】:2017-10-31 01:33:18
【问题描述】:
当我使用 NHibernate 执行我的“小”程序时收到此消息
SqlException: Cannot insert the value NULL into column 'EmployeeId', table 'NHibernateDemoDB.dbo.Employee'; column does not allow nulls. INSERT fails.
我的方法是:
private void SetEmployeeInfo(Employee employeeData)
{
employeeData.FirstName = txtFirstName.Text;
employeeData.LastName = txtLastName.Text;
}
还有我的映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" namespace="NHibernateWinFormsApp" assembly="NHibernateWinFormsApp">
<class name="NHibernateWinFormsApp.Employee, NHibernateWinFormsApp" lazy="true">
<id name="EmployeeId">
<generator class="native"/>
</id>
<property name="FirstName" column="FirstName"/>
<property name="LastName" column="LastName"/>
</class>
</hibernate-mapping>
请问有人有想法吗? 谢谢,
【问题讨论】:
-
列 X 需要一个值,而您还没有传递一个值。什么是 X 列?
-
信息很清楚
-
我有一个想法!它希望
EmployeeId的值不为空。我赢了什么,一把锤子? -
@user7879148 如果它不允许空值,试着想象你可以给它什么其他值。有没有一种不是
null值的值?也许有。也许这就是它想要的价值。试一试,你会失去什么? -
如果它是表的主键并且不允许空值并且不会自动生成值,那么我的第一个猜测是值在另一个表中,或者表应该设置为自动生成值...这是您创建的表吗?查看IDENTITY 属性
标签: c# sql sql-server nhibernate