使用Nhibernate更新不是标识的对象ID

时间:2011-11-26 21:42:11

标签: c# nhibernate orm primary-key

我有一个已存在于数据库中的对象,我想修改它的ID, Nhibernate将其视为一个新对象并保存而不是更新。 我有很多愚蠢的解决方案,但我想要有效的解决方案。

2 个答案:

答案 0 :(得分:0)

它有点难以回答,因为你还不清楚你想做什么......这个问题的背景是什么?为什么你甚至想换个ID?也许它像客户ID?

嗯,我说最好的解决方案是将业务逻辑与技术逻辑分开。通常建议使用无意义的主键。当然有理由反对这一点但是你已经知道你的ID可能会改变,我会说添加一个不会改变的ID。

无论如何,如果你不能添加一个没有变化的无意义的ID,只需先删除具有旧ID的实体,然后添加带有新ID的新实体。

答案 1 :(得分:0)

据我所知,唯一的方法是删除和插入行,但我会使用native SQL query来完成。