C# 使用NHibernate元素时如何防止记录重复?

C# 使用NHibernate元素时如何防止记录重复?,c#,nhibernate,enums,C#,Nhibernate,Enums,我们有一个RealEstateFile实体,它有一个用法列表,用法是Enum,因此我们必须将它们映射为一个元素,如下所示: <bag cascade="all-delete-orphan" fetch="join" lazy="false" name="Usage"> <key> <column name="RealEstateFile_id" /> </key> <element type="DataDefinition

我们有一个
RealEstateFile
实体,它有一个用法列表,用法是
Enum
,因此我们必须将它们映射为一个
元素,如下所示:

<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


我想知道我如何定义一个元素来解决
元素的重复问题?

如果集合
用法
应该只包含唯一的元素,并且没有订购要求,然后,应该将集合键入并映射为一个
ISet

如此简单但却如此容易忘记:)