【发布时间】:2012-02-29 07:43:50
【问题描述】:
我们使用 nhibernate 加载 POCO,关闭会话然后更新它(将项目添加到包或更改一些属性),最后创建一个新会话并更新它。
NHibernate 如何知道如何更新更改? (可能类似于选择并将更新的项目与前一个项目进行比较?)
【问题讨论】:
标签: c# .net nhibernate
我们使用 nhibernate 加载 POCO,关闭会话然后更新它(将项目添加到包或更改一些属性),最后创建一个新会话并更新它。
NHibernate 如何知道如何更新更改? (可能类似于选择并将更新的项目与前一个项目进行比较?)
【问题讨论】:
标签: c# .net nhibernate
当你使用Merge 或类似的东西时,它会尝试用它已经知道的对象来解析持久对象,如果没有,它会从数据库中加载它。此时,NHibernate 拥有加载状态以及当前状态,并将比较这两种状态之间的值以查看其是否为脏状态。如果它是脏的,它可以/将刷新更改。
【讨论】: