如何与实体框架和会员表初始化数据库(How to initialize database with

2019-08-01 02:01发布

我有使用实体框架5.0的代码首先一个MVC4 Web应用程序。

在Global.asax.cs中我有一个初始化Entity.Database,迫使数据库初始化和初始化数据库为会员引导程序。 该代码是这一个:

System.Data.Entity.Database.SetInitializer(new DatabaseContextInitializer());
Database.Initialize(true);
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);

该DatabaseContextInitializer是当下非常简单:

public class DatabaseContextInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>
{
    protected override void Seed(DatabaseContext dbContext)
    {
        base.Seed(dbContext);
        db.Set<Workout>().Add(new Workout {Id = 1, Name = "My First workout user1"})

    }
}

问题是,我不能创建用户与成员:

WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);

因为我有不创建数据库中的一个问题。 你如何初始化实体框架5.0和Asp.Net MVC 4数据库一些默认的用户?

Answer 1:

看看在下面的文章为播种使用迁移数据库推荐的方法。

具体操作步骤如下:

  1. 创建一个使用互联网的模板一个新的ASP.NET MVC应用4
  2. 在你的包管理器控制台输入以下命令:

     enable-migrations 
  3. 这将创建一个~/Migrations/Configuration.cs中,你可以播种您的数据库文件:

     using System.Data.Entity.Migrations; using System.Linq; using System.Web.Security; using WebMatrix.WebData; internal sealed class Configuration : DbMigrationsConfiguration<MvcApplication1.Models.UsersContext> { public Configuration() { AutomaticMigrationsEnabled = true; } protected override void Seed(MvcApplication1.Models.UsersContext context) { WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); if (!Roles.RoleExists("Administrator")) { Roles.CreateRole("Administrator"); } if (!WebSecurity.UserExists("john")) { WebSecurity.CreateUserAndAccount("john", "secret"); } if (!Roles.GetRolesForUser("john").Contains("Administrator")) { Roles.AddUsersToRoles(new[] { "john" }, new[] { "Administrator" }); } } } 
  4. 指定你的web.config中memebership和角色提供:

     <roleManager enabled="true" defaultProvider="SimpleRoleProvider"> <providers> <clear/> <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/> </providers> </roleManager> <membership defaultProvider="SimpleMembershipProvider"> <providers> <clear/> <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> </providers> </membership> 
  5. 在运行包管理器控制台迁移:

     update-database -verbose 


文章来源: How to initialize database with Entity Framework and Membership tables