根据REST原则,PUT
请求应更新URL上的资源(如果存在),并在不存在时创建它。换句话说,如果我使用以下URL:
PUT http://server/item/5
如果存在ID为5的Item
,则会更新。如果ID为5的Item
不存在,则会创建ID为5的新Item
。
但是,我使用NHibernate进行持久化,并将我的ID映射为Identity
。这意味着无论我分配ID的值是什么,当我保存新的Item
时,NHibernate将用它自己替换它。
如何让NHibernate使用我指定的ID保存Item
,而不将ID映射更改为Assigned
?
答案 0 :(得分:2)
如果您使用Identity,则DB不允许您输入值。
也就是说,如果你的数据库有一些特殊的语法允许在Identity字段中插入显式值,你可以实现自己的生成器,我保证它容易出错,难以调试,并且不是很有用。但这是可能的。
研究https://nhibernate.svn.sourceforge.net/svnroot/nhibernate/trunk/nhibernate/src/NHibernate/Id中的所有内容并开始创建您的Frankenstein: - )