Вы создаете собственный инициализатор, который наследуется от интерфейса DropCreateDatabaseIfModelChanges
или DropCreateDatabaseAlways
. Нравиться:
public class EntitiesContextInitializer : DropCreateDatabaseIfModelChanges<-YourDbContext->
И затем вы перезаписываете метод Seed, например:
protected override void Seed(YourDbContext context)
Весь пример может выглядеть так:
public class EntitiesContextInitializer : DropCreateDatabaseIfModelChanges<EntitiesContext>
{
protected override void Seed(EntitiesContext context)
{
List<Role> roles = new List<Role>
{
new Role {Id=1, Title="Admin"},
new Role {Id=2, Title="ProjectManager"},
new Role {Id=3, Title="Developer"}
};
// add data into context and save to db
foreach (Role r in roles)
{
context.Roles.Add(r);
}
context.SaveChanges();
}
}
Редактировать: после настройки вам также необходимо настроить Initializer, как упоминал Ладислав Мрнка.
Database.SetInitializer(new EntitiesContextInitializer());
т.е.: в Global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Database.SetInitializer(new EntitiesContextInitializer());
}
Не забудьте добавить using System.Data.Entity;
.....
person
Damb
schedule
13.04.2011