如何使用已定义的键将数据插入表中

时间:2013-05-16 10:50:45

标签: nhibernate fluent-nhibernate nhibernate-mapping

我在我的项目中使用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");

1 个答案:

答案 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

部分