我正在使用 C# 和 nHibernate 为我的数据库持久性构建一个博客。我想让条目可标记,所以我有一个标签属性的 IList。但是如何将其映射到数据库中单个列中的逗号分隔列表?
我想避免为标签使用单独的表格,而只是将它们作为单独的列表保存在一列中。所以我基本上是在尝试将数据库中的逗号分隔列表映射到 IList 属性。这在 nHibernate 中可能吗?
我正在使用 C# 和 nHibernate 为我的数据库持久性构建一个博客。我想让条目可标记,所以我有一个标签属性的 IList。但是如何将其映射到数据库中单个列中的逗号分隔列表?
我想避免为标签使用单独的表格,而只是将它们作为单独的列表保存在一列中。所以我基本上是在尝试将数据库中的逗号分隔列表映射到 IList 属性。这在 nHibernate 中可能吗?
是的,这是可能的:
http://www.codewrecks.com/blog/index.php/2008/10/21/some-details-on-older-post-about-usertype/
将该文件添加到您的程序集中,然后在映射文件中引用它:
<property name='ListAsStringProperty'
type='namespace.StringListUserType, assembly' />
映射的属性应该是一个简单的集合(List 或 IList),覆盖字符分隔符使其变成逗号。