使用Nhibernate更新一个对象's ID,它不是一个标识

本文关键字:标识 一个 一个对象 更新 Nhibernate ID 使用 | 更新日期: 2023-09-27 18:15:44

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

使用Nhibernate更新一个对象's ID,它不是一个标识

这有点难回答,因为你想做什么很不清楚……这个问题的背景是什么?你为什么要改身份证?也许是客户ID之类的东西?

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

无论如何,如果您不能添加一个没有意义且不会更改的ID,只需先删除具有旧ID的实体,然后添加具有新ID的新实体。

据我所知,唯一的方法是删除和插入行,但我会使用本地SQL查询。