我的数据库中有两个表:文章和标签
Tags表由ArticleID(外键)和Tag(varchar)组成.
现在我需要使用IList标签或ReadOnlyCollection标签将文章标签映射到Article实体的只读集合中.
我已经查阅了NHibernate参考资料,但我似乎无法确定何时使用Set,Bag和其他Nhibernate集合.我已经看过使用ISet集合的例子,但我真的不喜欢将我的实体类绑定到NHibernate类型.
如何在NHibernate中进行映射?
编辑:我最后使用了一个<bag>,因为它不需要索引:
<bag name="Tags" table="Tag" access="nosetter.camelcase" lazy="false">
<key column="ArticleId" />
<element column="Tag" type="System.String" />
</bag>
Run Code Online (Sandbox Code Playgroud)
要在映射中使用的集合类型取决于您希望如何在代码中表示集合.设置映射如下:
<list>直接映射到一个IList.<map>直接映射到一个IDictionary.<bag>映射到一个IList.A不完全符合IList接口,因为不保证Add()方法返回正确的索引.可以在<bag>不初始化IList 的情况下将对象添加到a .确保将IList隐藏在API的使用者之外,或者将其记录在案.<set>映射到一个Iesi.Collections.ISet.该接口是与NHibernate一起分发的Iesi.Collections程序集的一部分.因此,如果您想要返回IList,那么您将使用<list>映射.在你的情况下,我可能会使用<list>映射进行映射.
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |