在发布这个问题之前,我已经看过很多关于 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