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

时间:2015-05-17 09:20:47

标签: c# nhibernate enums

我们有一个RealEstateFile实体,其中包含一些用法和用法列表 Enum ,因此我们必须将它们映射为Element,如下所示:< / p>

<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的重复问题?

1 个答案:

答案 0 :(得分:2)

如果集合Usage应该只包含唯一元素,并且没有排序要求,那么应该键入集合并将其映射为 ISet<T>