Search code examples
c#.netasp.net-mvc-3ienumerableilist

Using List or Collection to Seed data with EF Code First


I'm adding some seed data for my development database. What I have seems rather clunky, is there a way to use some sort of IEnumerable type such as List or perhaps collection to make this easier?

public class MusicDBInit : DropCreateDatabaseIfModelChanges<MusicContext>
{
    protected override void Seed(MusicContext db)
    {
        Band bvs = new Band { Name = "Bear vs Shark", Members = 4 };
        Band circa = new Band { Name = "Circa Survive", Members = 4 };
        Band dam = new Band { Name = "Damiera", Members = 3 };

        db.Bands.Add(bvs);
        db.Bands.Add(circa);
        db.Bands.Add(dam);

        base.Seed(db);
    }
}

Solution

  • Try something like this (as done in Online Music Store MVC Sample:

     var bands = new List<Band>{
                         new Band { Name = "Bear vs Shark", Members = 4 },
                         new Band { Name = "Circa Survive", Members = 4 },
                         new Band { Name = "Damiera", Members = 3 }
     };
    
    
    bands.ForEach(x=> db.Bands.Add(x));