数据库结构:
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");