Seed Method in MVC Entity Framework
Solution 1
This seed()
method in configuration.cs
is called when you run update-database
in the Package Manager Console.
It's also called at application startup if you change Entity Framework to use the MigrateDatabaseToLatestVersion
database initializer.
Solution 2
The migrations feature of the Entity Framework includes a Seed method where you can populate the database with the initial static data an application needs.
Aritra B
Day dreamer FC Barcelona fanatic Electrician turned Application Developer (Mostly Microsoft Technologies)
Updated on June 05, 2022Comments
-
Aritra B almost 2 years
What is the main puspose of
seed method
in the migration folder of my application? In myConfiguration.cs
file I got this in my seed method -protected override void Seed(TestApplication.DataBaseContext.AppDBContext context) { // This method will be called after migrating to the latest version. // You can use the DbSet<T>.AddOrUpdate() helper extension method // to avoid creating duplicate seed data. E.g. // // context.People.AddOrUpdate( // p => p.FullName, // new Person { FullName = "Andrew Peters" }, // new Person { FullName = "Brice Lambson" }, // new Person { FullName = "Rowan Miller" } // ); // SeedMemebership(); } private void SeedMemebership() { if (!WebSecurity.Initialized) { WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); } var roles = (SimpleRoleProvider)Roles.Provider; var membership = (SimpleMembershipProvider)Membership.Provider; if (!roles.RoleExists("Administrator")) { roles.CreateRole("Administrator"); } if (membership.GetUser("admin", false) == null) { membership.CreateUserAndAccount("admin", "password"); } if (!roles.GetRolesForUser("admin").Contains("Administrator")) { roles.AddUsersToRoles(new[] { "admin" }, new[] { "Administrator" }); } }
As anyone can make out it calls the
SeedMembership()
which creates a role and a user if it does not exist. When is thisseed()
called and what does it do? I tried putting a break point on this method but it never really got hit. I tried searching other SO questions for further explainations but it dint help.Thank You.