2010-04-15 46 views
0

我现在开始使用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>但这些并没有给我所有的选项。

回答

3

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

我也可以推荐你看看Fluent NHibernate吗?

+0

当然,我会这样做!感谢你们两位! – 2010-04-15 22:34:19

2

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

如果你不想依赖那个特定的第三方库,你可以改为使用ICollection接口和微软的具体类型HashSet,尽管你会失去接口名称的意图狂欢方面(只有具体的impl很清楚)。