Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
合并Nhibernate中的实体更改_Nhibernate - Fatal编程技术网

合并Nhibernate中的实体更改

合并Nhibernate中的实体更改,nhibernate,Nhibernate,假设我有一个场景,两个用户同时编辑不同的地址对象* 用户1仅编辑address.streetname并保存,用户2编辑address.town并保存 我是否可以配置nhibernate,以便只更新更改的字段,从而合并更改 我已经绑定了动态更新,但他没有做到这一点,更多的是一种优化技术 dynamic-update="true" 我也尝试过这个版本,但似乎没有达到预期的效果 <version name="Version" type="int" column="Version"/>

假设我有一个场景,两个用户同时编辑不同的地址对象*

用户1仅编辑address.streetname并保存,用户2编辑address.town并保存

我是否可以配置nhibernate,以便只更新更改的字段,从而合并更改

我已经绑定了动态更新,但他没有做到这一点,更多的是一种优化技术

dynamic-update="true"
我也尝试过这个版本,但似乎没有达到预期的效果

<version  name="Version"  type="int" column="Version"/>

  • 我理解这是一个奇怪的场景,但这是我得到的要求

严格地说,这并不是“合并”本身:总是有可能丢失数据(我应该补充说,这是非常严重的)<代码>动态更新应该可以做到这一点,但是如果你要从
会话中分离一个对象,它将不起作用,你还需要将
更新前选择设置为
true
,这样NHibernate将从数据库中重新读取一个特定的记录。

我建议你挑战这个要求

在您给出的示例中,这可能是可以的,但在许多情况下,机械地合并更新在功能上是不一致的,没有明确的功能选择

即使在给出的示例中,假设您添加了验证,检查镇上是否存在街道:您的验证可能会让这两个更新通过,并且您的数据将被损坏