如何在aspure中将asp.net identity2.0 defaultconnection更改为数据库?

时间:2016-07-27 09:00:38

标签: entity-framework azure asp.net-mvc-5 azure-sql-database asp.net-identity-2

我使用visual studio 2015。

首先,我添加了一个新项目 - >模型中的ADO.NET实体数据模型。

来自数据库EF Designer的内容并添加连接。

数据源是Microsoft SQL Server(SqlClient)。

服务器名称是复制azure服务器,如下所示: [服务器] .database.windows.net。

使用SQL Server验证登录。

之后,我可以找到我的数据库并对其进行了解。

连接字符串出现在Web.confing。

<add name="GoMindEntities" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=[servername].database.windows.net;initial catalog=[databasename];user id=[user id];password=[user password];MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我想使用asp.net identity2.0,但这种方式是creat defaultconnection。 像这样  

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-Final-20160725121811.mdf;Initial Catalog=aspnet-Final-20160725121811;Integrated Security=True" providerName="System.Data.SqlClient" />
 

在数据库中添加一个表。

但我在azure服务器上有一个数据库,我想连接到这里。

所以我改变了与

的连接

<add name="DefaultConnection" connectionString="Data Source=[azure server];Initial Catalog=[database name];User ID=[user id];Password=[user password];MultipleActiveResultSet=True;Application Name=EntityFramework;" providerName="System.Data.EntityClient" />

当我运行程序时,会出现一条错误消息。

不支持关键字:'数据来源'。

描述:在执行当前Web的要求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误的详细信息以及代码中生成的位置。

异常详细信息:System.ArgumentException:不支持关键字:'数据源'。

原始编程错误:

行 153: {
行 154:     var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
行 155:     var result = await UserManager.CreateAsync(user, model.Password);
行 156:     if (result.Succeeded)
行 157:                {

我尝试的另一种方法是复制完整的GoMindEntities连接字符串。 像这样

 <add name="DefaultConnection" connectionString="metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=[azure server];initial catalog=[databasename];user id=[user id ];password=[user password];MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    

我运行一个程序并显示该消息。

ApplicationUser实体类型不是当前模型的一部分。

描述:在执行当前Web的要求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误的详细信息以及代码中生成的位置。

异常详细信息:System.InvalidOperationException:ApplicationUser当前不是实体类型内容模型的一部分。

原始编程错误:

行 153:            {
行 154:                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
行 155:                var result = await UserManager.CreateAsync(user, model.Password);
行 156:                if (result.Succeeded)
行 157:                {

我使用的是mvc程序。 我没有更改任何代码。 只需更改web.config即可。 所以我想问一下如何解决这个问题。 对不起,我的英语不好..... 请帮我。 感谢。

1 个答案:

答案 0 :(得分:0)

providerName上的DefaultConnection设置应保持为System.Data.SqlClient。您当前已将其更改为System.Data.EntityClient,但它是一个SQL连接字符串,而不是EF连接字符串(其中包含所有元数据内容)。