将ASP.NET标识存储移动到EF Sql数据库

将ASP.NET标识存储移动到EF Sql数据库,asp.net,sql,asp.net-mvc,entity-framework,asp.net-identity,Asp.net,Sql,Asp.net Mvc,Entity Framework,Asp.net Identity,默认情况下,ASP.NET标识用户数据存储在mdf文件中 我想将数据存储在Sql数据库中,以便将我的web.config中的defaultconnection字符串更改为基于EF的连接: <add name="DefaultConnection" connectionString="metadata=res://*/Models.StartifyModel.csdl|res://*/Models.StartifyModel.ssdl|res://*/Models.StartifyMode

默认情况下,ASP.NET标识用户数据存储在mdf文件中

我想将数据存储在Sql数据库中,以便将我的
web.config
中的defaultconnection字符串更改为基于EF的连接:

 <add name="DefaultConnection" connectionString="metadata=res://*/Models.StartifyModel.csdl|res://*/Models.StartifyModel.ssdl|res://*/Models.StartifyModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MYPC\SQLEXPRESS;initial catalog=mydb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

现在我得到一个错误
实体类型ApplicationUser不是当前上下文模型的一部分。
只要我想注册一个用户


我使用VS2013的默认MVC5项目模板。

请尝试以以下格式指定连接字符串:

<add name="DefaultConnection" connectionString="Data Source=127.0.0.1, 1433;Initial Catalog=YourDB;User Id=XXXX;Password=XXXXX;Asynchronous Processing=True;Encrypt=False;TrustServerCertificate=True;Persist Security Info=True" providerName="System.Data.SqlClient" />

然后确保在Models/IdentityModels.cs中

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {
        }
public类ApplicationDbContext:IdentityDbContext
{
公共应用程序上下文()
:base(“默认连接”)
{
}

此连接字符串仍然存在相同的问题。我创建了一个新项目,现在它可以正常工作。我在AccountController中遇到一些问题。如果您要更改为非EF连接字符串,根据您的示例,您将得到
“关键字不受支持:'数据源'”
相反,因为它不是EF连接的有效连接字符串(问题中指定了EF数据库)。这不是对所问问题的正确答案,只会混淆问题。请修改或删除它。这就是重点。在此处切换到正常数据连接可以使其正常工作。您仍然可以将DB表拉入EF数据模型,并通过该上下文获取它们。