首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >首先用实体框架6代码初始化数据库

首先用实体框架6代码初始化数据库
EN

Stack Overflow用户
提问于 2014-02-10 00:01:30
回答 1查看 4.1K关注 0票数 0

这几行EF5SimpleMembershipProvider的等价性是什么?

代码语言:javascript
复制
if (!WebMatrix.WebData.WebSecurity.Initialized)
{
    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
}

EF6中使用ASP.NET-Identity

这些行来自方法protected void Application_Start()中的protected void Application_Start()文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-10 07:08:00

ASP.NET标识的实体框架实现首先使用代码创建映射并初始化数据库。它只是首先使用标准的EF代码来初始化数据库,因此实际上没有上面引用的等效代码(它们实际上是对简单成员资格API的调用,而不是EF)。

当首次访问ApplicationDbContext (在默认的MVC模板中,这发生在AccountController中)时,EF运行上下文的初始化器。默认情况下,它使用CreateDatabaseIfNotExists初始化器,检查表是否已创建,并在需要时创建表。

简单成员资格调用指定要使用的连接字符串的名称。在ASP.NET标识中,这是在ApplicationDbContext的构造函数中设置的(在IdentityModels.cs中)。

简单成员资格InitializeDatabaseConnection()方法还接受表名和列名的参数。IdentityDbContext ( ApplicationDbContext继承的)包含一些默认映射,以映射到以"AspNet“为前缀的表。您应该能够通过在OnModelCreating()中重写ApplicationDbContext并提供自定义映射来更改它们。

而且,因为它首先是EF代码,所以您还可以创建自己的自定义数据库初始化器,在这里您可以提供一个添加一些初始角色和用户的Seed()方法,例如。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21666893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档