NHibernate-Mapping вопрос - PullRequest
       10

NHibernate-Mapping вопрос

0 голосов
/ 13 июня 2011

У меня небольшая проблема с отображением для NHibernate. Прежде всего, моя структура базы данных выглядит следующим образом.

Столовое сообщение (Id, Title, Text ......) с Articels Табличный тег (Tagname) с тегами (Tagcloud) Таблица PostTag (PostId, TagName) для отображения Post и Tag.

Так что каждое сообщение может иметь больше тегов. Теперь я хочу отобразить теги в сообщении как базовую коллекцию со строками, а не как объекты тега, например. Так кто-нибудь знает, как это сделать? Я новичок в этом и до сих пор не могу найти ответ:)

Так верно. Jan

1 Ответ

0 голосов
/ 14 июня 2011

когда вам не нужно обновлять тег:

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