使用Nhibernate更新一个对象's ID,它不是一个标识
本文关键字:标识 一个 一个对象 更新 Nhibernate ID 使用 | 更新日期: 2023-09-27 18:15:44
我有一个已经存在于数据库中的对象,我想修改它的ID,Nhibernate将其视为新对象并保存而不是更新。我有很多愚蠢的解决方案,但我想要一个有效的。
这有点难回答,因为你想做什么很不清楚……这个问题的背景是什么?你为什么要改身份证?也许是客户ID之类的东西?
嗯,我认为最好的解决方案是将业务逻辑与技术逻辑分开。通常建议使用无意义的主键。当然有反对的理由,但如果你已经知道你的ID可能会改变,我建议添加一个不会改变的ID。
无论如何,如果您不能添加一个没有意义且不会更改的ID,只需先删除具有旧ID的实体,然后添加具有新ID的新实体。
据我所知,唯一的方法是删除和插入行,但我会使用本地SQL查询。