0
はここScottGuがテーブルをシードする方法を示しTutorialを書いた私のモデルEF Code First:One-To-Many関係でテーブルをシードする方法は?
public class Movie
{
public int MovieID { get; set; }
public int GenreID { get; set; }
[Required, StringLength(200)]
public string Title { get; set; }
public int MovieLength { get; set; }
[Required, StringLength(1000)]
public string MovieSummary { get; set; }
public virtual Genre Genre { get; set; }
}
public class Genre
{
public int GenreID { get; set; }
public string GenreName { get; set; }
public virtual IEnumerable<Movie> Movies { get; set; }
}
public class ZimelleShopDbContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
public DbSet<Genre> Genres { get; set; }
}
です。これらの2つのテーブルが1対多の関係にある場合に、上記の例をシードする方法を知りたいと思います。 EDIT
を支援するための
おかげで、私はそれが他の方法で回避しなかった、それが働きました。私が気をつけなければならなかったのは、ICollectionをインスタンス化することだけでした。
public class Genre
{
public Genre()
{
Movies = new List<Movie>();
}
//...
}
それから私は、それはまだ動作します。この
protected override void Seed(ZimelleShopDbContext context)
{
var genre = new Genre { GenreName = "Foo" };
var movie = new Movie { Title = "Bar", MovieSummary = "Baz" };
genre.Movies.Add(movie);
context.Genres.Add(genre);
context.SaveChanges();
}
をしました。
それは完全に働きました。私は映画の代わりにジャンルで行くことを試みた(上記のEDITを参照)。ありがとうございました。 – Richard77