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

dan*_*iel 4 sql asp.net asp.net-mvc entity-framework asp.net-identity

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

我想将数据存储在Sql数据库中,以便将my中的defaultconnection字符串更改为web.config基于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" />
Run Code Online (Sandbox Code Playgroud)

现在The entity type ApplicationUser is not part of the model for the current context.,只要我想注册用户,我就会收到错误.

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

Pio*_*ski 7

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

<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" />
Run Code Online (Sandbox Code Playgroud)

然后确保你拥有的Models/IdentityModels.cs

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {
        }
Run Code Online (Sandbox Code Playgroud)

  • 我的连接字符串仍然存在同样的问题. (2认同)
  • 如果您要更改为非EF连接字符串,根据您的示例,您将获得"不支持关键字:'数据源'",因为它不是EF连接的有效连接字符串(EF数据库在问题中指定).对于提出的问题,这不是一个正确的答案,只会混淆问题.*请修改或删除它.* (2认同)