我对NHibernate有一点点映射问题。首先我的数据库结构看起来像这样。NHibernate-Mapping问题
表后(ID,标题,文本......)与Articels 表标记(标记名)与标签(Tagcloud) 表PostTag(帖子ID,标签名)映射邮政和标签。
所以每个帖子都可以有更多的标签。现在我想将Post中的Tags作为基本集合映射到字符串中,而不是作为Tag的对象。那么有谁知道如何做到这一点?我是新来的,直到现在我无法找到答案:)
如此忠实。 扬
我对NHibernate有一点点映射问题。首先我的数据库结构看起来像这样。NHibernate-Mapping问题
表后(ID,标题,文本......)与Articels 表标记(标记名)与标签(Tagcloud) 表PostTag(帖子ID,标签名)映射邮政和标签。
所以每个帖子都可以有更多的标签。现在我想将Post中的Tags作为基本集合映射到字符串中,而不是作为Tag的对象。那么有谁知道如何做到这一点?我是新来的,直到现在我无法找到答案:)
如此忠实。 扬
当你不需要更新标签:
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(); } }
}