由于性能方面的原因,有时候我想更新实体而没有任何版本增量(或版本检查)。使用LINQ TO SQL,我只是保持版本不变并且工作正常。这种行为在NHibernate中可行吗?NHibernate - 有没有办法来防止版本增量?
1
A
回答
1
一些修改不是 真的很重要。所以我想让 这些修改只是最后一个 赢。
虽然交易的意思是原子,这样我们就可以按照时间顺序的长远讲,它不是简单的,它总是有点棘手交易涉及时候说话第一/最后的。例如。
T1: start
T1: read row X with value A
T2: start
T2: read row X with value A
T2: write row X with value A2
T2: commit
T1: write row X with value A1
T1: commit
T2在T1之后开始时,更改A2丢失。哪一笔交易是“最后一笔交易”?最后一个开始,还是最后一个结束? (提交实际上是原子性的,但交易仍然有一个持续时间,这使得他们很难推理。)
乐观或悲观锁定是为了避免这种情况,以便我们可以更好地考虑交易顺序。这就是说,回到你的问题,如果这真的是你想要的,你可以尝试在两个实体中两次映射相同的数据库表:在一个实体中,你有@version
,而在其他实体中则不是。但这可能会让人困惑。
0
我相信你可能不想禁用对这些实体的所有乐观锁定(否则只是不给它们一个版本属性),但你想要一些属性不会导致版本增加。这是用“乐观锁”支持,请参考:http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-property
乐观锁(可选 - 默认为true):表明更新此属性做或需要获取乐观锁。换句话说,确定当这个属性是脏的时候是否应该发生版本增量。
相关问题
- 1. 有没有办法来防止:悬停?
- 2. 有没有办法防止重复?
- 3. 有没有什么办法来防止输入事件jquery datepicker
- 4. 有没有办法来防止在Swift中插入字符串?
- 5. 有没有办法来防止分配指针?
- 6. 有没有办法来防止篡改QueryStrings或丢失QueryString?
- 7. 有没有办法来防止覆盖的PHP设置?
- 8. 有没有办法来防止Markdown嵌套滥用?
- 9. 有没有办法100%防止php邮件脚本被滥用?
- 10. 有没有办法锁定PHPUnit版本?
- 11. 有没有办法来声明PostgreSQL数组列来防止重复?
- 12. 有没有办法来OpenAccessContext
- 13. ruby脚本内存%消费量不断增加...有什么办法来防止这种情况发生?
- 14. 有没有办法来防止响应bootstrap采取太多的宽度?
- 15. 有没有办法来防止重复图片上传到firebase存储
- 16. 有没有办法防止舍入在opencv矩阵divison
- 17. 有没有什么办法可以防止url注入?
- 18. 有没有办法防止角重定向#foo到#/ foo?
- 19. 有没有办法在Angular 2 RC5中防止DOM的移除?
- 20. 有没有办法防止numpy.linalg.svd内存不足?
- 21. 有没有办法防止stringWithFormat四舍五入?
- 22. 有没有办法增加QString?
- 23. 有没有办法获得three.js的最小/精简版版本
- 24. 有没有办法增强这个圈子来检测它?
- 25. 有没有办法阻止Windows Azure试用版中的帐单?
- 26. 有没有办法使用git来查看文件的所有版本?
- 27. 有没有办法以块/增量返回ajax POST结果?
- 28. 有没有办法增加API的V4的度量限制?
- 29. 有没有办法让自动增量字段前缀000?
- 30. 有没有办法阻止html警告?
但是,这不是有点击败版本领域的点? “我希望有一个领域能够随着每一个变化自动更新,哦,顺便说一下,我不希望它随着*每一个变化而更新。” – 2010-05-29 19:11:40
是否确定此版本检查导致您的性能问题? – Amitabh 2010-05-29 19:14:34
我对此表示怀疑。版本的重点在于乐观锁定。说“请不要版本更改”就像说“我完全相信没有人正在同时修改实体”,我不认为你可以告诉NHibernate。 – ewernli 2010-05-29 23:56:20