Session.Merge其意思有两个步骤,

一般用法: Session.Merge(obj);

1. 从当前的Session中获取obj对象, 如果未获取到则从数据库获取。

2. 把程序中的obj的值赋值给从数据库中获取的值, 意思是说把一个临时对象转换为一个持久化对象.

 

问题环境:

是在做关系处理的时候,把外键对象做了Merge, 这个时候外键对象发生了变化,同时在transaction commit的时候,也会同时持久化变化的obj对象,造成不想更新的外键对象,却被更新.

 

解决办法:

这个时候我们其实需要的是Session.Load来把某个临时的对象,变成Attached对象,以便当前对象保存。而外键对象并不发生变化.

相关文章:

  • 2021-09-22
  • 2021-06-26
  • 2021-08-08
  • 2021-12-02
  • 2021-11-15
  • 2021-06-14
  • 2022-12-23
猜你喜欢
  • 2021-07-08
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2021-12-05
  • 2021-09-19
  • 2022-02-02
相关资源
相似解决方案