Asset クラスで 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 になる可能性があります。そのため、コードの null 値を 2 回目に挿入することはできません。SQL
Add a Where
Conditionで関連する制約を変更しました:
CREATE UNIQUE NONCLUSTERED INDEX [IX_Asset_Code] ON [dbo].[Table_Asset]
(
[Code] ASC
)
WHERE ([Code] IS NOT NULL)
私の問題はこの変更によって解決されましたが、hbm 構成でこのタイプを一意に設定するための解決策が必要です。どうすればいいですか?