将ASP.NET标识存储移动到EF Sql数据库
默认情况下,ASP.NET标识用户数据存储在mdf文件中 我想将数据存储在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
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="data source=MYPC\SQLEXPRESS;initial catalog=mydb;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" 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数据模型,并通过该上下文获取它们。