NHibernate版本控制-调用ISession.Save后出现异常



在发布这个问题之前,我已经看到了很多关于NH版本控制的示例,所有这些示例告诉我使用以下代码;我可以使用MappingByCode:创建一个版本化的实体

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

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

我对版本生成的期望总是正确的吗?那怎么了?

我使用的是NHibernate 3.3/SQL Server 2012

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

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

最新更新