Nhibernate初学者 - 询问方向

时间:2010-04-15 02:37:37

标签: c# nhibernate

我现在开始使用NHibernate,但我仍然没有可测试的环境。

我想向您了解,如果将IList映射到.hbm文件中的Set时出现问题,有经验的研究员。

像这样:

//c#
IList<TrechoItem> trechos_item;

<!-- xml .hbm -->
<set name="TrechosItem" table="trecho_item" lazy="true" inverse="true" fetch="select">
  <key column="id_item"/>
  <one-to-many class="TrechoItem"/>
</set>

或者,在此:

IList<Autor> Autores;

<set name="Autores" lazy="true" table="item_possui_autor">
  <key column="id_item"/>
  <many-to-many class="Autor" column="id_autor"/>
</set>

这可能吗?或者我做错了什么?

我尝试使用<map><list>,但这些并没有给我所有选项。

2 个答案:

答案 0 :(得分:3)

通常,使用<set>的映射将使用派生自Iesi.Collections.ISet的类作为其集合类型。如果您想使用IList,则应该使用<bag>进行映射。

我还建议你看一下Fluent NHibernate吗?

答案 1 :(得分:2)

使用一组,例如来自Iesi.Collections的ISet,更好地表达了你的意图(唯一性)。

如果您不想依赖于特定的第三方库,您可以使用ICollection接口和Microsoft的具体类型HashSet,尽管您将失去对接口名称的意图狂欢方面(只有具体的impl是明确的。)