WebSecurity.InitializeDatabaseConnection,SetInitializer和Database.Initialize

时间:2013-07-03 10:28:36

标签: c# asp.net-mvc asp.net-mvc-4

我在初始化数据库时遇到了问题。需要使用我的Database.Initialize初始化数据库,因为 WebSecurity.InitializeDatabaseConnection似乎没有使用我的DatabaseInitializer。需要每次注释Database.Initialize以创建数据库并将其删除以使身份验证起作用。

的DbContext

internal class DatabaseContext : DbContext
{
    static DatabaseContext()
    {
        Database.SetInitializer(new DatabaseInitializer());
        WebSecurity.InitializeDatabaseConnection(
            "Connection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
    }

    public DatabaseContext() : base("Connection") {
        //Database.Initialize(false); 
    }

    public DbSet<UserProfile> Users { get; set; }
    public DbSet<SomeModel> Models { get; set; }    
}

DatabaseInitializer

internal class DatabaseInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>