我对NHibernate有一点映射问题。首先,我的数据库结构如下所示。
带有Articels的桌子(Id,Title,Text ......) 带有标签的表标签(标记名)(Tagcloud) 用于映射帖子和标签的表格标签(PostId,TagName)。
所以每个帖子都可以有更多标签。现在我想将帖子中的标签映射为带字符串的基本集合,而不是像Tag的对象。那么有谁知道如何做到这一点?我是新手,到目前为止我找不到答案:)
如此忠诚。 扬
答案 0 :(得分:0)
当您不需要更新标签时:
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(); } }
}