1

在发布这个问题之前,我已经看过很多关于 NH Versioning 的示例,所有这些都告诉我使用下面的代码;我可以使用 MappingByCode 拥有一个版本化实体:

Version(e => e.MyVersion, vm => {
     vm.Generated(VersionGeneration.Always);
     vm.UnsavedValue(0);
});

我希望分配 MyVersion 应该由 SQL Server 完成。所以当我调用 ISession.Save 或 ISession.SaveOrUpdate; NProf 显示生成的 sql 不包含传递给 Insert 语句的 MyVersion 参数(如预期的那样),但查询执行失败,因为 SQL Server 没有生成它;结果是cannot insert null value into MyVersion column...错误。

我对 VersionGeneration.Always 的期望是正确的吗?那么怎么了?

我正在使用 NHibernate 3.3 / SQL Server 2012

4

1 回答 1

2

VersionGeneration.Always 意味着 NHibernate 应该期望数据库系统在 INSERT 和 UPDATE 上生成版本号。

但是您还需要告诉 SQL Server 它应该生成数字......例如参见http://msdn.microsoft.com/en-us/library/ms182776.aspx

于 2013-02-12T15:54:35.223 回答