ID何时在NHibernate中生成
本文关键字:NHibernate 何时 ID | 更新日期: 2023-09-27 18:26:43
我想知道的是NHibernate
何时为Id字段赋值/生成值。实体保存到存储库后?我需要使用产品Id
来构建一个复合文件名。但当我在将实体保存到存储库之前使用Id
时,我会得到Guid.Empty
。
谢谢!
我想知道为什么在进行保存之前需要使用Id
?当然,在Id
成功提交到数据库之后使用它是正确的方法。毕竟,如果您使用Id
,然后发现数据库没有持久化实体,那么这将给您带来不必要的副作用。
然而,有一个工作,但它不是很好。
将id
生成器设置为已分配。这附带了一些注意事项,您不能使用SaveOrUpdate
,因为NHibernate将无法检测到这是一个新实体或需要更新的实体。这意味着您应该显式使用Save
或Update
方法
请参阅下面的链接以获取您的答案
http://nhibernate.info/doc/nh/en/index.html#mapping-声明id
"但当我在将实体保存到存储库之前使用Id时,我会得到Guid.Empty" ->id只会在记录保存到数据库后生成。。。如果你之前想要id,我建议使用分配的id生成器,您可以在将记录保存到数据库之前生成您的id。