我在使用 NHibernate 的表中插入语句时遇到异常
这就是它在存储库(自定义)层中的调用方式
private void AddOrUpdateObject(object objectToUpdate)
{
UnitOfWork.CurrentSession.SaveOrUpdate(objectToUpdate);
}
这是生成的 SQL 语句,我在日志中找到它们
2013-07-08 15:28:43,919 [36] 调试 NHibernate.SQL - 插入 [季节](名称、开始日期、结束日期、修改日期)值(@p0、@p1、@p2、@p3);选择 SCOPE_IDENTITY();@p0 = '第 4 季' [类型:字符串 (4000)],@p1 = 6/13/2014 12:00:00 AM [类型:日期时间 (0)],@p2 = 12/31 /2013 12:00:00 AM [类型:DateTime (0)],@p3 = 7/8/2013 3:28:43 PM [类型:DateTime (0)]
这是我得到的例外
2013-07-08 15:28:43,929 [36] WARN NHibernate.Util.ADOExceptionReporter - System.Data.SqlClient.SqlException (0x80131904):无法将值 NULL 插入到列 'Id'、表 'ticketing.social.dbo。季节'; 列不允许空值。插入失败。
为什么它不能在表“Season”中插入一个新行,即使它正在使用 select SCOPE_IDENTITY();
除了 CurrentSession.SaveorUpdate(),我还可以从 ISession 中使用另一种方法吗?
请指教,非常感谢