首页 文章

如何将ASP.NET MVC数据库从LocalDb传输到SQL Server?

提问于
浏览
31

我在Visual Studio 2013(Express for Web)中创建了一个新的ASP.NET MVC 5项目,默认情况下,该项目使用LocalDb作为其数据库, but how do you transfer or migrate the database to SQL Server?

我想将SQL Server用于数据库而不是LocalDb . 但是怎么样?

8 回答

  • 0

    虽然这个问题很老,但答案对我没有帮助,所以我想分享一下我是如何为自己解决的 .

    在Server Explorer上,找到您的ASPNet DB . 然后使用SQL Server对象资源管理器打开它 .

    enter image description here

    然后去点击 Schema Compare 选项

    Compare Schemas

    然后在Target数据库的Schema Compare窗口中,选择您希望ASPNet DB集成到的SQL Server数据库 . 然后点击比较按钮

    Set Options

    取消选择目标数据库的所有删除操作,并为ASPNet DB保留所选的所有添加操作,然后单击“更新”按钮 .

    Update

    最后,更新您的连接字符串,使其指向您的SQL Server数据库

  • -4

    得到它了!

    基于@ warheat1990的答案,您只需更改连接字符串即可 . 但@ warheat1990的回答有点太多变化 . 所以这是我的原始(LocalDb)连接字符串:

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

    为了将它连接到SQL Server而不是LocalDB,我将连接字符串修改为:

    <add name="DefaultConnection"
         connectionString="Data Source=SERVERNAME\SQLEXPRESS;Initial Catalog=my_project;Integrated Security=True"
         providerName="System.Data.SqlClient"/>
    

    感谢@ warheat1990,只需更改Web.config即可 . 我的第一个想法是识别和使用VS提供的功能,如果有的话 . 因为Microsoft没有关于如何执行此操作的简明文档 .

  • 37

    更改web.config中的connectionString

    <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-KlikRX-20141203034323.mdf;Initial Catalog=aspnet-Test-20141203034323;Integrated Security=True" providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    到您自己的数据库connectionString,例如:

    <connectionStrings>
        <add name="DefaultConnection" connectionString="Data Source=7.7.7.7\sql;Initial Catalog=TestDB;User ID=sa;Password=sa" />
      </connectionStrings>
    
  • 3

    听起来您可能想将数据从本地数据库移动到SQL Server . 如果是这样,最简单的方法是备份本地数据库,然后在服务器上恢复它 .

    备份:https://msdn.microsoft.com/en-us/library/ms187510.aspx#SSMSProcedure

    要恢复:https://msdn.microsoft.com/en-us/library/ms177429.aspx

    编辑:

    如果需要安装SQL Server实例:https://msdn.microsoft.com/en-us/library/ms143219.aspx

  • 6

    我有同样的问题,只是解决了这个...所以主要的一点是默认连接字符串...你需要正确修改,否则它是没有意义的..并且无法正确连接 . 因此,将所有aspnetroles ... users表复制到在线数据库(它们应该与本地数据库中的相同) . 您可以将模式(本地数据库)与实际数据库进行比较 . 这是退出很好解释"Overlord" - > Explanation

    但是现在让我们正确修改defaultconnection字符串这是我修改前的默认字符串:

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

    这是我修改后的修改后的默认字符串:

    <add name="DefaultConnection" connectionString="Data Source=servername,portnumber;Initial Catalog=AttendanceTrak;Integrated Security=False;User Id=****;Password=*****;Encrypt=True;TrustServerCertificate=False;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
    

    servername - 应该是你的服务器 . portnumber - 应该是您的服务器端口

    我花了很长时间才使它正常工作......但是这个带有默认字符串的小技巧就成了它!啤酒花有帮助

  • 19

    我有一个类似的问题,想要从本地数据库导出到远程数据库服务器并遇到一条错误信息,我找不到任何信息,但在阅读这篇文章时我得到了答案,所以我提交了我的答案这里以防其他人有同样的问题 .

    我使用个人用户帐户设置了一个解决方案 . VS方便地创建一个db(app_Data下的mdf文件)和web.config中的连接字符串 .

    在我所有的智慧中,我想:“为什么不将它移到远程服务器上?”所以我做了 .

    我恢复了远程服务器上的mdf文件,用我的网站的一些简单表扩展了它,创建了一个新的数据库连接并添加了一个新的ado.net edmx文件,删除了web.config中的“DefaultConnection”和在ApplicationDBContext中更新了对我的新连接的引用 .

    按下游戏,然后......没有sigar(当试图登录时) .

    The entity type IdentityUserLogin is not part of the model for the current context.
    

    事实证明IdentityDbContex更喜欢带有providerName =“System.Data.SqlClient”的“DefaultConnection”,因此添加一个带有providerName =“System.Data.EntityClient”的新edmx文件并不合适 .

    解决方案:正如warheat1990建议的那样,我更新(放回)DefaultConnections及其的connectionstring值 .

    有人可能会说我应该有两个单独的数据库(一个用于用户)和一个用于商业用途,但这是另一个讨论 .

  • 0

    关于OverLords答案,它对我来说非常有效,谢谢!

    如果有人正在努力使用连接字符串:

    <add name="CONNECTIONSTRINGNAME" connectionString='data source= DATABASE SOURCE initial catalog=&quot;DATABASE NAME &quot;;user id=&quot;USERID&quot;;password=PASSWORD;MultipleActiveResultSets=True;' providerName="System.Data.SqlClient" />
    
  • 0

    您无法像这样备份LocalDB . 没有用于在那里进行备份的SSMS接口 . 您必须复制localDB的MDF文件并将其附加到SQL Server Express(或更高版本) . 然后你可以移动文件或进行备份还原 .

相关问题