What is the main puspose of seed method
in the migration folder of my application? In my Configuration.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 this seed()
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With