繁体   English   中英

NHibernate-有没有办法防止版本增加?

NHibernate - Is there a way to prevent version increment?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

出于性能原因,有时我想更新实体而没有任何版本增量(或版本检查)。 使用LINQ TO SQL,我只是保留了该版本不变,并且运行良好。 在NHibernate中这种行为可能吗?

2 个回复

一些修改不是很重要。 所以我只想最后一次获胜就可以做出这些修改。

尽管事务是原子性的 ,所以我们可以按照时间顺序来讲,但这并不简单,涉及事务时,要说第一个/最后一个总是有些棘手。 例如

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而在另一个中则没有。 但这可能会造成混乱。

我相信您可能不想禁用这些实体上的所有乐观锁定(否则就不要给它们提供版本属性),但是您希望某些属性不会导致版本增加。 使用“ optimistic-lock”支持该功能,请检查: http : //nhibernate.info/doc/nh/en/index.html#mapping-declaration-property

optimistic-lock(可选-默认为true):指定对此属性的更新需要或不需要获取乐观锁。 换句话说,确定此属性为脏时是否应增加版本。

1 NHibernate-有没有办法从其异常中获取更多信息?

我出于设计原因将枚举更改为实体,并从NHibernate获得了以下异常: 我发现了问题,原因是其中一个类做了: 现在,问题在于NHibernate几乎没有帮助找到原因。 在找到原因之前,我不得不查找并忽略每个Entity属性。 有没有办法从NHibernate异常中获取更 ...

3 有没有办法增加QString?

有没有一种方法可以增加C ++中的QString-类似: QString str("a"); str++; qDebug()<<a; //Here i want letter "b" 编辑:是的,基本上我想增加一个字母,但是增加较长的字符串会很好。 ...

4 有没有办法防止 ClosedByInterruptException?

在下面的示例中,我有一个文件被两个线程使用(在实际示例中,我可以拥有任意数量的线程) 而不是为每个线程创建一个 RandomAccessFile 和一个内存映射,我有一个文件和一个在线程之间共享的内存映射,但是有一个问题,如果任何线程被中断,资源就会关闭。 有什么办法可以防止 FileCha ...

9 有没有办法让CGPath增加x个像素?

我正在构建一个自定义UIView,它在drawRect:方法中绘制其自己的内容。 我想用一种颜色描边CGPath,然后将此选择增长1px并用另一种颜色描边。 有人找到一种很容易做到这一点的方法吗? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM