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

谢谢!

最佳答案

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

但是,有一个变通办法,但这不是很好。

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

关于c# - NHibernate何时生成ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9579145/

10-10 21:31
查看更多