使用时 Session.SaveOrUpdate(myEntity); NHIBERNATE如何决定如何插入新记录或更新现有记录?

我在S#ARP项目中保存一个对象时遇到了麻烦。它是从存储中检索的,然后将其存储在会话状态中的几个Web请求,然后将一个属性更改回数据库(不是S#ARP) [DomainSignature]).

在运行时,我比较了即将使用的对象,直接从数据库中直接检索到一个新的版本 Equals() 方法和返回真实。但是,该对象仍然最终在数据库中创建一个新行。

应用程序在其他地方的工作正常,但我希望对Nhib的工作方式进行指针。

有帮助吗?

解决方案

基本上 SaveOrUpdate() 正在寻找标识符。如果存在标识符,它将在数据库中更新记录。如果不存在标识符,它将创建一个新记录。

但是,听起来您可能会在会议中发生一些时髦的事情。您可能想尝试 SaveOrUpdateCopy() 看看这是否解决了您的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top