【问题标题】:NHibernate-Mapping questionNHibernate-映射问题
【发布时间】:2011-06-14 15:47:47
【问题描述】:
我对 NHibernate 有一点映射问题。首先我的数据库结构是这样的。
带有文章的表格帖子(ID,标题,文本......)
带有标签(Tagcloud)的表标签(Tagname)
用于映射 Post 和 Tag 的 Table PostTag(PostId, TagName)。
所以每个帖子都可以有更多的标签。现在我想将 Post 中的标签映射为带有字符串的基本集合,而不是标签的对象。那么有人知道该怎么做吗?我是新手,直到现在我才找到答案:)
如此忠实。
一月
【问题讨论】:
标签:
nhibernate
mapping
nhibernate-mapping
【解决方案1】:
当你不需要更新标签时:
HasMany(x => x.Tags)
.Table("PostTag")
.KeyColumn("PostId")
.Element("Tagname");
如果你需要更新,那么:
HasManyToMany(x => x.Tagnames)
.Table("PostTag")
.AsBag() // or AsArray()
.ParentKeyColumn("PostId")
.ChildKeyColumn("TagName")
.Element("TagName");
或者
class Post
{
public virtual ISet<Tag> Tags { get; set; }
public virtual string[] Tagnames
{ get { return Tags.Select(t => t.Name).ToArray(); } }
}