gpt4 book ai didi

c# - 如果实体没有 ID,是否可以让 NHibernate 自动生成 ID,或者如果实体已经有 ID,是否可以使用实体的 ID?

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:10 33 4
gpt4 key购买 nike

根据 REST 哲学,PUT操作应该(取自维基百科):

PUT <a href="http://example.com/resources/142" rel="noreferrer noopener nofollow">http://example.com/resources/142</a>

Update the address member of the collection, or if it doesn't exist, create it.

NHibernate 似乎有两种处理实体 ID 的方法:

  1. 无论用户设置什么值,都会自动生成一个 ID。
  2. 使用用户分配的 ID,但失去所有自动生成功能。

这里的问题是 PUT如果实体不存在,则操作是关于创建实体的部分。我的假设是,如果你 PUT一个不存在的资源,它将使用 URL 指定的 相同 ID 创建它(例如,如果我们使用上面的示例,则为 142)。但是,NHibernate 不允许您设置自动生成的 ID。

所以我的问题是,有没有办法让 NHibernate 在实体没有 ID 的情况下自动生成一个 ID(或者 ID 类型有默认值,例如 0 代表整数),同时保存具有用户设置的 ID 的实体?

最佳答案

通常使用分配的 ID 不是一个好主意。

你的情况更接近于 NaturalId .我认为你应该使用它。您将需要有两个不同的属性,一个用于数据库主键,另一个用于用户可见的 ID。

关于c# - 如果实体没有 ID,是否可以让 NHibernate 自动生成 ID,或者如果实体已经有 ID,是否可以使用实体的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3930141/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com