NHibernate-Mapping问题

时间:2011-06-13 10:15:29

标签: nhibernate mapping nhibernate-mapping

我对NHibernate有一点映射问题。首先,我的数据库结构如下所示。

带有Articels的桌子(Id,Title,Text ......) 带有标签的表标签(标记名)(Tagcloud) 用于映射帖子和标签的表格标签(PostId,TagName)。

所以每个帖子都可以有更多标签。现在我想将帖子中的标签映射为带字符串的基本集合,而不是像Tag的对象。那么有谁知道如何做到这一点?我是新手,到目前为止我找不到答案:)

如此忠诚。 扬

1 个答案:

答案 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(); } }
}