设计简单的代码第一电影数据库(多对多)EF

时间:2017-03-31 16:32:32

标签: c# sql-server entity-framework

我正在做ASP MVC的一些教程,视频中的人只使用每部电影1种类型,但我很想知道如何制作一部电影有多种类型。例如,如何制作此代码:

public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Genre> Genre { get; set; }
}

public class Genre
{
    public int Id { get; set; }
    public string Name { get; set; }
}

生成一些像这样的表:

电影

  • Id(主键)
  • 名称

类型

  • Id(主键)
  • 名称

MovieGenresRelation

  • Id(主键)
  • MovieId(References Movie.Id)
  • GenreId(References Genre.Id)

我尝试添加MovieGenresRelation类,但是如何向Movie类添加引用属性? 无论如何,我认为这不是我应该怎么做的所以请指出正确的方向。

1 个答案:

答案 0 :(得分:2)

你走在正确的轨道上(你描述了多对多的关系)。

您实际上可以在EF6中的关系的两侧使用ICollection,但在EFCore中,您必须自己制作中间表。在EF6中,您可以将其添加到Genre

public virtual ICollection<Movie> Movies {get; set;}

就中间版本中的参考属性而言,只需按照您期望的方式添加它们:

public virtual Movie Movie {get; set;}
public virtual Genre Genre {get; set;}

主要区别在于MovieGenre中的属性会指向MovieGenreRelation而不是彼此。