MVC迁移IdentityUser SQL Server 2012迁移

时间:2014-05-02 07:21:33

标签: asp.net sql-server-2012 visual-studio-2013 asp.net-mvc-5

是否可以更改IdentityUser以使用SQL Server 2012数据库,而不是在创建新的ASP.NET Web应用程序时默认安装的localdb?

我有一个现有的SQL Server 2012数据库,我想与MVC 5项目一起使用,我可以在web配置中修改连接字符串,但是我得到错误“实体类型ApplicationUser不是模型的一部分对于当前的背景“。

我找不到任何对AspNetUsers的引用,因为我可以替换我的用户表。

我是否被迫修改现有的localdb并重写我之前的数据库以使用新的AspNet表结构,如果可以,那么数据库是否可以迁移并升级到SQL Server 2012?

非常感谢任何帮助: - )

2 个答案:

答案 0 :(得分:1)

只需为您的项目启用迁移(假设VS2013 - 更新的版本不同,不需要为vNext启用迁移) 1.启用 - 迁移 2. Update-Database -Script -SourceMigration:$ InitialDatabase

这将生成您需要的脚本。

答案 1 :(得分:0)

通过关闭Visual Studio 2013并找到localDB的路径来解决这个问题,该路径是WebApplication1 \ App_Data,有两个文件aspnet-WebApplication1-20140430012043.mdf和aspnet-WebApplication1-20140430012043_log.ldf驻留在该文件夹中。

我修改了WebApplication1 \ App_Data的安全权限,以便SQL Server 2012在连接时没有问题。

然后我打开了Microsoft SQL Server Management Studio并继续附加数据库,一旦数据库附加到实例,我就备份了数据库。接下来,我删除了数据库并执行了恢复,这次按照项目重命名数据库并重新定位mdf和ldf文件。

然后我在Visual Studio 2013中打开了我的项目,并从:

修改了Web.config
<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20140430012043.mdf;Initial Catalog=aspnet-WebApplication1-20140430012043;Integrated Security=True"
  providerName="System.Data.SqlClient" />
</connectionStrings>

为:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=MYSERVER;Initial Catalog=WebApplication1;Integrated Security=True" providerName="System.Data.SqlClient" />

跑完项目,一切顺利。