我想知道的是NHibernate
何时为ID字段分配/生成一个值。将实体保存到存储库后?我需要使用产品Id
构建复合文件名。但是,当我在将实体保存到存储库之前使用Id
时,会得到Guid.Empty
。
谢谢!
最佳答案
我想知道为什么您需要在保存之前使用Id
?成功地将Id
提交到数据库后,一定要使用它是正确的方法。毕竟,如果您使用Id
然后发现数据库没有保留该实体,那么这将给您带来不良的副作用。
但是,有一个变通办法,但这不是很好。
将id
生成器设置为已分配。附带一些警告,您不能使用SaveOrUpdate
,因为NHibernate将无法检测到这是一个新实体还是需要更新的实体。这意味着您应该显式使用Save
或Update
方法
关于c# - NHibernate何时生成ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9579145/