проблема с отображением отношения многие ко многим (отображение по коду) - PullRequest
1 голос
/ 11 июля 2011

Я использую новое отображение в NHibernate 3.2 по коду (не бегло nhibernate), и у меня есть небольшая проблема с отображением отношения многие ко многим.

Я хочу отобразить эти объекты

 public class Article
    {
        public virtual Guid Id { set; get; }
        public virtual string Content { set; get; }
        public virtual string Title { set; get; }
        public virtual IList<Tag> Tags { set; get; }
    }
 public class Tag
    {
        public virtual Guid Id { set; get; }
        public virtual string Name { set; get; }
        public virtual IList<Article> Articles { set; get; }
    }

    public class ArticleTag
    {
        public virtual Article Article { set; get; }
        public virtual Tag Tag { set; get; }
    }

Мое отображение выглядит так

  public class TagMapping : ClassMapping<Tag>
        {
            public TagMapping()
            {
                Id<Guid>(x => x.Id);
                Property<string>(x => x.Name);
                Bag<Article>(x => x.Articles, x => x.Inverse(true), x => x.ManyToMany(z =>
                {
                    z.Column("Article");
                    z.Lazy(LazyRelation.Proxy);
                }));
            }
        }
        public class ArticleTagMapping : ClassMapping<ArticleTag>
        {
            public ArticleTagMapping()
            {
                ManyToOne<Article>(x => x.Article, x => { });
                ManyToOne<Tag>(x => x.Tag, x => { });
            }
        }
       public class ArticleMapping : ClassMapping<Article>
        {
            public ArticleMapping()
            {
                Id<Guid>(x => x.Id, x => x.Generator(Generators.Guid));
                Property<string>(x => x.Content, x => x.Length(4002));
                Property<string>(x => x.Title);
                Bag<Tag>(x => x.Tags, x =>{ }, x => x.ManyToMany(z =>
                {
                    z.Column("Tag");
                    z.Lazy(LazyRelation.Proxy);
                }));
            }
        }

Единственная проблема состоит в том, что, когда я генерирую таблицы в базе данных, используя эту схему, у меня есть две дополнительные таблицы. Что я должен изменить, чтобы отключить создание этих двух таблиц (статьи и теги)? enter image description here

1 Ответ

1 голос
/ 11 июля 2011

Вам действительно это нужно?:

 public class ArticleTagMapping : ClassMapping<ArticleTag>
        {
            public ArticleTagMapping()
            {
                ManyToOne<Article>(x => x.Article, x => { });
                ManyToOne<Tag>(x => x.Tag, x => { });
            }
        }
...