C# 如何使用Entity Framework 6将数据库从网络服务器迁移到本地SQL Server

C# 如何使用Entity Framework 6将数据库从网络服务器迁移到本地SQL Server,c#,asp.net,sql-server,asp.net-mvc,entity-framework,C#,Asp.net,Sql Server,Asp.net Mvc,Entity Framework,我得到了一个ASP.NETMVC5项目,它已经在服务器上发布了。但我必须扩展它。因此,我试图用本地数据库创建本地开发环境。我不想丢失任何已经工作的数据。因为这是一个巨大的项目。所有的模型和控制器都完成了 我也不是ASP.NET领域的专家。搜索了一段时间后,我发现有一种方法叫做代码优先法 因为我有所有的模型,所以我假设它应该能够在我的机器中创建所有本地数据库 实际的项目连接字符串如下所示: <connectionStrings> <clear /> <

我得到了一个ASP.NETMVC5项目,它已经在服务器上发布了。但我必须扩展它。因此,我试图用本地数据库创建本地开发环境。我不想丢失任何已经工作的数据。因为这是一个巨大的项目。所有的模型和控制器都完成了

我也不是ASP.NET领域的专家。搜索了一段时间后,我发现有一种方法叫做代码优先法

因为我有所有的模型,所以我假设它应该能够在我的机器中创建所有本地数据库

实际的项目连接字符串如下所示:

<connectionStrings>
    <clear />
    <add name="Name.DataSourceConnectionString" 
         connectionString="Data Source=test.test.com;User ID=myUser;Password=myPass" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

)

请注意,相同的登录在服务器中工作正常

然后我跟随链接

在包管理控制台中,我插入命令enable migrations,然后更新数据库-Force。我得到了以下错误:-

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)

我已安装SQL Server 2012 Express。我怀疑我的连接字符串定义不正确。我如何定义它?还有关于如何在本地为ASP.NET服务设置开发环境的建议吗

connectionString="Server=myip;Port=3306;Database=mydatabase;Uid=admin;Pwd=password;"

您可以尝试此操作,可能您缺少端口并选择“数据库”,因为您不知道mssql服务器中配置了多少数据库。

先编写代码,不管其名称如何,都可以创建新数据库或使用现有数据库。但是,这是关键,它不能创建和管理表,也不能使用同一数据库中的现有表(至少不能使用相同的上下文)

您可以有多个上下文,但它们必须完全隔离,即它们不能引用由不同上下文跟踪的实体,否则它们将试图从其他上下文中控制这些实体

长话短说,如果您有一个需要使用的现有数据库,那么代码优先迁移几乎是不可能的。您可以创建新的实体类型,但需要在数据库中手动为它们创建表

不过,只要获得本地副本,您所需要做的就是备份生产数据库并在本地恢复它。它实际上与实体框架或MVC无关

connectionString="Server=myip;Port=3306;Database=mydatabase;Uid=admin;Pwd=password;"