我希望NHibernate只有在没有由用户或应用程序手动设置时才为实体生成guid.基本上,当使用新的Guid()(全零)保存对象时,NHibernate应该生成一个.保存具有非零Guid的对象时,应该使用它.
我唯一的选择是编写自己的发电机吗?
编辑伙计,我知道'已分配'.我应该指明我知道它.由于它不能做我想做的事,它不是我正在寻找的选项.编写我自己的生成器是一个有效的选项,但我想要别的东西.我怀疑没有别的东西.
您是否尝试过设置unsaved-value属性?
<id name="Id" column="Id" type="Guid" unsaved-value="00000000-0000-0000-0000-000000000000">
<generator class="guid.comb" />
</id>
Run Code Online (Sandbox Code Playgroud)
现在编辑我完全理解你的问题,除了推出你自己的生成器之外,另一种选择是使用
<generator class="assigned" />
Run Code Online (Sandbox Code Playgroud)
但是您不能使用SaveOrUpdate(). 相反,您必须通过调用 ISession 的 Save() 或 Update() 方法显式指定 NHibernate 是否应保存或更新对象。此外,您始终需要在所有新实体上手动设置 GUID。这是一个选择。
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |