我应该如何种子数据很多在实体框架代码中的许多关系首先5.0(How should I seed da

2019-08-05 18:42发布

我有在EF 5.0我有一个多对多的关系,我的第一个步骤。 电影可以有多种类型和类型可以有多个电影

public class Movie
{
    public int MovieId { get; set; }
    [Required]
    public string Name { get; set; }

    public virtual ICollection<Type> Types { get; set; }
}


public class Type
{
    public int TypeId { get; set; }
    public string MovieType { get; set; }

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

当我生成的数据库它创建多到许多电影和类型之间

所以,我应该做的播种此多对多表? 我试了很多的解决方案张贴在这里,但它没有工作。

此外,这是产生许多一对多关系的最佳方式首先使用EF代码

Answer 1:

只要创建一个几部电影和几个类型,并通过添加一些这些类型的的创建关系Movie.Types集合(或者反过来),例如:

protected override void Seed(MyContext context)
{
    var movie1 = new Movie { Name = "A", Types = new List<Type>() };
    var movie2 = new Movie { Name = "B", Types = new List<Type>() };
    var movie3 = new Movie { Name = "C", Types = new List<Type>() };

    var type1 = new Type { MovieType = "X" };
    var type2 = new Type { MovieType = "Y" };

    movie1.Types.Add(type1);

    movie2.Types.Add(type1);
    movie2.Types.Add(type2);

    movie3.Types.Add(type2);

    context.Movies.Add(movie1);
    context.Movies.Add(movie2);
    context.Movies.Add(movie3);
}


文章来源: How should I seed data to many to many relation in Entity Framework Code first 5.0