Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 实体框架:无法更改代码优先迁移的数据源_Sql Server_Entity Framework_Entity Framework Migrations - Fatal编程技术网

Sql server 实体框架:无法更改代码优先迁移的数据源

Sql server 实体框架:无法更改代码优先迁移的数据源,sql-server,entity-framework,entity-framework-migrations,Sql Server,Entity Framework,Entity Framework Migrations,我正在从事一个项目,在这个项目中,我使用实体框架和代码优先迁移来更新我的数据库。我在另一台机器上开始了这个项目,结果很好。现在我在另一台机器上查到了代码。因为这台机器没有数据库,所以我在nuget中运行了update database命令。它应该应用我以前的迁移并在此计算机上创建一个新数据库,但它显示以下错误 我读了一篇文章,上面写着 如果本地SQL Express实例可用(默认情况下使用Visual Studio 2010安装),则代码首先在该实例上创建了数据库 如果SQL Express不

我正在从事一个项目,在这个项目中,我使用实体框架和代码优先迁移来更新我的数据库。我在另一台机器上开始了这个项目,结果很好。现在我在另一台机器上查到了代码。因为这台机器没有数据库,所以我在nuget中运行了update database命令。它应该应用我以前的迁移并在此计算机上创建一个新数据库,但它显示以下错误

我读了一篇文章,上面写着

如果本地SQL Express实例可用(默认情况下使用Visual Studio 2010安装),则代码首先在该实例上创建了数据库 如果SQL Express不可用,则“代码优先”将尝试使用LocalDb(默认情况下随Visual Studio 2012一起安装)


我的理解是,当我在第一台机器上启用迁移时,它创建了以SQLEXPRESS实例作为数据源的数据库,而由于我在当前机器上没有该实例,所以它无法创建数据库。因此,我正在尝试将EntityFramework的数据源更改为当前sql server的实例,即LAPTOP-HD618J49。为此,我尝试在app.config中使用该实例编写硬编码连接字符串,在数据上下文类中更改了ContextName,但没有成功。请给我一些关于我可能缺少什么的指导?

我终于解决了这个问题。早些时候,我尝试使用
base(“name=ConnectionStringNameHere”)
,但当我在PackageManager控制台中运行updatedatabase命令时,它不起作用。奇怪的原因是VisualStudio不知道要检查哪个app.config的ConnectionStringName。虽然我已经在PackageManager控制台的下拉菜单中选择了实体框架模块。我必须从解决方案资源管理器窗口中选择带有实体框架的模块,并将其设置为启动项目。这以某种方式解决了问题,它能够使用更新的数据源从模块的app.config中选择ConnectionStringName。

我建议您在上下文的构造函数中指定一个连接字符串名称,如前所述。然后将该连接字符串添加到配置文件中。应该不需要更改上下文的名称。@SteveGreene我也试过了。仍然是相同的错误。要做的第一件事是使用VS(或SQL Management Studio)中的SQL Server对象资源管理器连接到所需的数据库,并确保您具有访问权限(默认情况下,您将无法访问远程数据库)。第二,您的错误消息是否仍然引用“.\SQLEXPRESS”?这表明它没有使用笔记本电脑HD618J49的连接字符串。是否尝试了
:base(“name=connectionstringname”)