gpt4 book ai didi

c# - 如何通过允许空值在 NHibernate 的 hbm 配置中设置唯一性

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:58 27 4
gpt4 key购买 nike

我有一个通过 Assets 类使用 NHibernate 的项目。此类的 Hbm 配置是:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Domain" namespace="Domain.Entities">
<class name="Asset" table="Table_Asset" >

<id name="Id">
<generator class="native" />
</id>

<property name="Code" unique="true"/>

</class>
</hibernate-mapping>

此类中的代码列是唯一的,但此列的值可以为 Null。所以代码的空值不能第二次插入。我通过添加 Where 条件更改了 SQL 中的相关约束:

CREATE UNIQUE NONCLUSTERED INDEX [IX_Asset_Code] ON [dbo].[Table_Asset] 
(
[Code] ASC
)
WHERE ([Code] IS NOT NULL)

此更改解决了我的问题,但我需要一个解决方案来在我的 hbm 配置中设置这种类型的唯一性。我该怎么办?

最佳答案

尝试将“where”属性添加到您的 hbm:

`<class name="Asset" table="Table_Asset" where="[Code] IS NOT NULL">`

关于c# - 如何通过允许空值在 NHibernate 的 hbm 配置中设置唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12913563/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com