我有一个通过资产类使用 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。所以代码的空值不能第二次插入。SQL
我通过添加条件更改了相关约束Where
:
CREATE UNIQUE NONCLUSTERED INDEX [IX_Asset_Code] ON [dbo].[Table_Asset]
(
[Code] ASC
)
WHERE ([Code] IS NOT NULL)
这个更改解决了我的问题,但我需要一个解决方案来在我的 hbm 配置中设置这种类型的唯一性。我该怎么办?