我在我的项目中使用Nhibernate。我有一个表有一个主键,其标识规范设置为true,它生成自动增量值。这工作正常。 这种情况自动正常发生
现在我希望我应该从代码a发送Id密钥并将该密钥插入数据库。像guid,但是当我这样做时,它给了我异常
NHibernate.Exceptions.GenericADOException: could not insert:
Cannot insert the value NULL into column 'User_Id', table 'tablename'; column does not allow nulls. INSERT fails.
声明已经终止。
Id(x => x.userId).GeneratedBy.Identity().Column("User_Id");
答案 0 :(得分:0)
我确实希望您从代码中发送密钥,因为您的表上的IDENTITY生成器未被使用。如果是这种情况,只需将映射从Identity
更改为Assigned
Id(x => x.userId)
.GeneratedBy
.Assigned()
.Column("User_Id");
从那时起,NHibernate将使用您已在代码中设置的GUID值发送INSERT语句。这将解决...Cannot insert the value NULL...
问题
在此处查看更多https://github.com/jagregory/fluent-nhibernate/wiki/Fluent-mapping, ID
部分