ASP.Net Identity定制UserProfile

时间:2013-11-06 14:16:33

标签: asp.net-mvc entity-framework asp.net-mvc-5 asp.net-identity

我正在用EF写一个MVC5应用程序。我在第一次注册用户时在我的数据库中创建ASPNETUser表的项目中添加了ASP.NET Identity。但是现在,当我尝试自定义UserProfile时(如本文所列:http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

我得到以下内容:

The model backing the 'ApplicationDbContext' context has changed since the database was created. Consider using Code First Migrations to update the database

是因为我已经指定了.edmx文件(MVC5Entities)=> (请参阅web.config中的2个连接字符串)?

这是我的web.config:

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=DILS-S1301;Initial Catalog=MVC5;Integrated Security=True" providerName="System.Data.SqlClient" />
  <add name="MVC5Entities" connectionString="metadata=res://*/Models.Mvc5Model.csdl|res://*/Models.Mvc5Model.ssdl|res://*/Models.Mvc5Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DILS-S1301;initial catalog=MVC5;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

我该怎么做?

1 个答案:

答案 0 :(得分:7)

首先,我认为如果你有一个或多个connectionStrings并不重要。 但是你应该确保在“IdentityModels.cs”文件中,ApplicationDbContext将使用你的主connectionString而不是默认的conncetionString。 如下所示:

public ApplicationDbContext() : base("MVC5Entities")
{
}

其次,如果您为用户添加了一些配置文件数据,则需要使用迁移来更新数据库。

1)转到程序包管理器控制台

2) - &gt;启用的迁移

3) - &gt;添加迁移init

4) - &gt;更新数据库

希望它有所帮助。