1

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

1 回答 1

0

我确实希望您想从代码中发送一个密钥,因为您的表上的 IDENTITY 生成器未使用。如果是这种情况,只需将映射从更改IdentityAssigned

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部分

于 2013-05-17T12:39:05.867 回答