2
我想在安裝時將我們的初始數據庫與用戶(對於ASP.NET Web應用程序)一起播種。由於某種原因,它不能正常工作。我讀過大量主題,主要是說運行update-database
,這在控制檯上效果很好,但是它如何在生產環境中工作?EF代碼優先,播種和部署
作爲一個試圖繞過這個我已經結束了以下代碼 - 我在這裏失蹤了什麼?
的Global.asax.cs ::的Application_Start()
try
{
initializationError = null;
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
catch (Exception ex)
{
initializationError = ex;
}
// Initialize database and seed data
Database.SetInitializer(new EntitiesContextInitializer());
// Now initialize it
using (var context = new EMUI.Models.UsersContext())
{
if (!context.Database.Exists())
{
context.Database.Initialize(true);
}
}
EntitiesContextInitializer
internal sealed class EntitiesContextInitializer : MigrateDatabaseToLatestVersion<EMUI.Models.UsersContext, Configuration>
{
}
配置
internal sealed class Configuration : DbMigrationsConfiguration<EMUI.Models.UsersContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
protected override void Seed(EM.Models.UsersContext context)
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}
if (!Roles.RoleExists("Administrator"))
{
Roles.CreateRole("Administrator");
}
// More similar seeding
}
}
這個爲我工作。 – Maris