我有一个已存在于数据库中的对象,我想修改它的ID, Nhibernate将其视为一个新对象并保存而不是更新。 我有很多愚蠢的解决方案,但我想要有效的解决方案。
答案 0 :(得分:0)
它有点难以回答,因为你还不清楚你想做什么......这个问题的背景是什么?为什么你甚至想换个ID?也许它像客户ID?
嗯,我说最好的解决方案是将业务逻辑与技术逻辑分开。通常建议使用无意义的主键。当然有理由反对这一点但是你已经知道你的ID可能会改变,我会说添加一个不会改变的ID。
无论如何,如果你不能添加一个没有变化的无意义的ID,只需先删除具有旧ID的实体,然后添加带有新ID的新实体。
答案 1 :(得分:0)
据我所知,唯一的方法是删除和插入行,但我会使用native SQL query来完成。