2015-05-17 66 views
1

我們有有用法列表的RealEstateFile實體和使用都是Enum,所以我們不得不把它們映射爲Element這樣的:如何在使用NHibernate元素時防止重複記錄?

<bag cascade="all-delete-orphan" fetch="join" lazy="false" name="Usage"> 
    <key> 
    <column name="RealEstateFile_id" /> 
    </key> 
    <element type="DataDefinition.Enum.RealEstateFileEnums.Usages, 
       DataDefinition, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> 
    <column name="Usages" /> 
    </element> 
</bag> 

現在我們每次運行一個查詢時,我們得到每一個使用例如查詢記錄,如果一個文件只有一個用法定義,並且我們運行一個查詢返回兩個記錄NHibernate返回一個具有兩個實際相同的用法的文件。

我知道發生這種情況是因爲NHibernate沒有找到Enum類型(表中沒有Id)的等式。

我想知道如何定義一個元素來解決Elements的重複問題?

回答

2

如果集合Usage應該只包含獨特的元素,而且沒有順序要求,那麼集合應鍵入並映射爲ISet<T>

+0

太簡單了,但還是如此遺忘:) – Beatles1692