代码之家  ›  专栏  ›  技术社区  ›  Buddy Lindsey

不寻常?有很多次NHibernate映射

  •  1
  • Buddy Lindsey  · 技术社区  · 14 年前

    数据库结构:

    Shows
    ID
    Name
    
    Genres
    ID
    Name
    
    ShowsGenres
    ShowsID
    GenresID
    

    以上是我的数据库,我试图找出如何正确地映射这一点。我的展示对象是这样的:

    public class Show
    {
        public virtual int ID { get; set; }
        public virtual string Name { get; set; }
        public virtual IList<Genre> Genres { get; set; }
    }
    

    我的流派目标是:

    public class Genre
    {
        public virtual int ID { get; set; }
        public virtual string Name { get; set; }
        public virtual IList<Show> Shows { get; set; }
    }
    

    我试过几种不同的HasManyToMany变体,但是没有一种是我想要的。

    我需要能够删除一个节目和与流派的关系,或者许多流派,但不能删除流派。

    我需要能够删除一个流派及其与一个或多个节目的关系,但不能删除节目。

    我该如何映射这一点,还是需要尝试一些不同的方法?

    更新:我还需要更多地考虑它,我还需要能够删除一个节目和一个流派之间的关系,而不删除该节目或流派。

    这是我的映射,但不完全确定它们是正确的。

            HasManyToMany<Genre>(x => x.Genres)
                .Table("ShowGenres")
                .ParentKeyColumn("ShowID")
                .ChildKeyColumn("GenreID");
    
            HasManyToMany<Show>(x => x.Shows)
                .Table("ShowGenres")
                .ParentKeyColumn("GenreID")
                .ChildKeyColumn("ShowID");
    
    1 回复  |  直到 14 年前