这几行EF5与SimpleMembershipProvider的等价性是什么?
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()文件。
发布于 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()方法,例如。
https://stackoverflow.com/questions/21666893
复制相似问题