NHIBERNATE如何确定是否插入或更新记录?
-
01-10-2019 - |
题
使用时 Session.SaveOrUpdate(myEntity);
NHIBERNATE如何决定如何插入新记录或更新现有记录?
我在S#ARP项目中保存一个对象时遇到了麻烦。它是从存储中检索的,然后将其存储在会话状态中的几个Web请求,然后将一个属性更改回数据库(不是S#ARP) [DomainSignature]
).
在运行时,我比较了即将使用的对象,直接从数据库中直接检索到一个新的版本 Equals()
方法和返回真实。但是,该对象仍然最终在数据库中创建一个新行。
应用程序在其他地方的工作正常,但我希望对Nhib的工作方式进行指针。
解决方案
基本上 SaveOrUpdate()
正在寻找标识符。如果存在标识符,它将在数据库中更新记录。如果不存在标识符,它将创建一个新记录。
但是,听起来您可能会在会议中发生一些时髦的事情。您可能想尝试 SaveOrUpdateCopy()
看看这是否解决了您的问题。
不隶属于 StackOverflow