【发布时间】:2010-10-14 04:42:44
【问题描述】:
根据 REST 哲学,PUT 操作应该(取自维基百科):
PUT @987654321@
更新集合的地址成员,或者如果它不存在,创建它。
NHibernate 似乎有两种处理实体 ID 的方式:
- 自动生成 ID,无论用户设置什么值。
- 使用用户分配的 ID,但失去所有自动生成功能。
PUT 操作的问题在于创建实体(如果它不存在)。我的假设是,如果您 PUT 一个不存在的资源,它将使用 URL 指定的 same ID 创建它(例如,如果我们使用上面的示例,则为 142)。但是,NHibernate 不允许您设置自动生成的 ID。
所以我的问题是,如果实体没有 ID(或 ID 类型具有默认值,例如整数为 0),是否有办法让 NHibernate 自动生成 ID,但也可以保存具有用户设置的 ID 的实体?
【问题讨论】:
标签: c# nhibernate fluent-nhibernate identity uniqueidentifier