asp.net-mvc – 如何使用Entity Framework和Membership表初始化数据库
发布时间:2020-05-23 13:45:08 所属栏目:asp.Net 来源:互联网
导读:我有一个使用实体框架5.0代码优先的MVC4 Web应用程序。 在Global.asax.cs中,我有一个引导程序,初始化Entity.Database,强制数据库被初始化并初始化成员资格的数据库。代码是这样的: System.Data.Entity.Database.SetInitializer(new DatabaseContextInitia
|
我有一个使用实体框架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,autoCreateTables: true); 因为我有一个问题,数据库没有创建。如何使用Entity Framework 5.0和Asp.Net MVC 4为数据库初始化一些默认用户? 解决方法请查看 following article的推荐方法,使用迁移种植您的数据库。这里是步骤: >使用Internet模板创建一个新的ASP.NET MVC 4应用程序 enable-migrations >这将创建一个/ 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",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" });
}
}
}
>在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>
>在包管理器控制台中运行迁移: update-database -verbose (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 在ASP.NET MVC视图中允许多少逻辑?
- asp.net-mvc – 如何检查用户是否在Action中被授权
- asp.net-mvc – 如何在多个Asp.net MVC应用程序中使用通用布
- asp.net-mvc-3 – 剃刀索引视图中的条件格式
- asp.net-mvc-3 – 如何在输出缓存中使用动态持续时间值?
- asp.net – 实际文化是否与SQL相关联到CLR float-double转换
- asp.net – %=%和%#%之间有什么区别?
- 在asp.net Gridview控件中触发的事件序列是什么?
- asp.net – MVC3 Razor – 到期页面
- asp.net-mvc-3 – 剃刀引擎 – SEO元标签
推荐文章
站长推荐
- ASP.NET中的基页
- asp.net-mvc – 适当地url编码空间字符
- asp.net-mvc-4 – 使用asp.net MVC4,如何在默认情
- asp.net-mvc-3 – @ Html.TextBoxFor文本框在验证
- asp.net-core – Asp.net vNext中的bindingRedir
- asp-classic – 检查VBScript中是否存在Object
- 页面生成时间 – ASP.Net MVC
- 使用asp.net连接到mySQL数据库
- asp.net核心 – Asp.Net核心从url获取RouteData值
- asp.net – Xamarin.Forms应用程序SQL服务器数据
热点阅读
