ID何时在NHibernate中生成

本文关键字:NHibernate 何时 ID | 更新日期: 2023-09-27 18:26:43

我想知道的是NHibernate何时为Id字段赋值/生成值。实体保存到存储库后?我需要使用产品Id来构建一个复合文件名。但当我在将实体保存到存储库之前使用Id时,我会得到Guid.Empty

谢谢!

ID何时在NHibernate中生成

我想知道为什么在进行保存之前需要使用Id?当然,在Id成功提交到数据库之后使用它是正确的方法。毕竟,如果您使用Id,然后发现数据库没有持久化实体,那么这将给您带来不必要的副作用。

然而,有一个工作,但它不是很好。

id生成器设置为已分配。这附带了一些注意事项,您不能使用SaveOrUpdate,因为NHibernate将无法检测到这是一个新实体或需要更新的实体。这意味着您应该显式使用SaveUpdate方法

请参阅下面的链接以获取您的答案

http://nhibernate.info/doc/nh/en/index.html#mapping-声明id

"但当我在将实体保存到存储库之前使用Id时,我会得到Guid.Empty" ->id只会在记录保存到数据库后生成。。。如果你之前想要id,我建议使用分配的id生成器,您可以在将记录保存到数据库之前生成您的id。