【问题标题】: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(); } }
}

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2010-10-11
    • 1970-01-01
    相关资源
    最近更新 更多