Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
Entity framework 代码优先迁移-它将使用什么连接字符串?_Entity Framework_Connection String_Code First_Entity Framework Migrations_Ef Model First - Fatal编程技术网

Entity framework 代码优先迁移-它将使用什么连接字符串?

Entity framework 代码优先迁移-它将使用什么连接字符串?,entity-framework,connection-string,code-first,entity-framework-migrations,ef-model-first,Entity Framework,Connection String,Code First,Entity Framework Migrations,Ef Model First,代码优先迁移对我来说非常有效。我有一个服务项目和一个wpf项目。该模型位于wpf项目引用的服务项目中。更新数据库是在服务项目上完成的,但使用wpf项目中的连接字符串。现在我添加了一个web项目,它也引用了服务项目。既然app.config中有一个连接字符串,web.config中有一个连接字符串,那么它将使用哪一个?在执行更新数据库时,您应该指定包含迁移的项目。确保该项目中有一个包含正确连接字符串的app.config文件。 您可以执行更新数据库-ConnectionStringName“MyC

代码优先迁移对我来说非常有效。我有一个服务项目和一个wpf项目。该模型位于wpf项目引用的服务项目中。更新数据库是在服务项目上完成的,但使用wpf项目中的连接字符串。现在我添加了一个web项目,它也引用了服务项目。既然app.config中有一个连接字符串,web.config中有一个连接字符串,那么它将使用哪一个?

在执行
更新数据库时,您应该指定包含迁移的项目。确保该项目中有一个包含正确连接字符串的
app.config
文件。

您可以执行
更新数据库-ConnectionStringName“MyConnectionString”
,它应该可以像符咒一样工作。

在我的场景中,服务项目中的app.config被忽略。代码优先迁移将使用WPF项目中的app.config或web项目中的web.config,具体取决于选择哪个作为启动项目。

您所说的是正确的,并遵循官方文档。但是,在我的例子中,服务项目中的app.config被忽略,当指定连接字符串时,它告诉我它不存在。它看到的唯一连接字符串是WPF项目的app.config。我假设WPF app.config覆盖了服务项目的app.config。没有解释为什么web.config中的连接字符串被完全忽略。您可以将连接字符串的名称设置为完整命名空间
,也可以使用传递给构造函数的连接字符串名称创建DbContext:
public EfDbContext():base(“nameOfYourConnectionString”)
如果您没有说明连接字符串名称,它将使用与您的上下文名称匹配的连接字符串名称。您所说的一切都是正确的,但仍然没有回答我的问题。@Shumii,谢谢!你救了我。当我尝试启用迁移时,总是出现错误“找不到服务器或无法访问服务器。请验证实例名称是否正确,以及SQL server是否配置为允许远程连接”。实际上,连接是正确的。问题是因为解决方案的启动项目设置为没有app.config的项目。将启动项目设置为包含正确app.config的项目后,迁移工作正常!哇!我甚至没想到这就是原因。很好的发现!!疯狂的。。。我不知道启动项目会影响PackageManager控制台中发生的事情。谢谢。您可以使用-ProjectName、-StartupProjectName、-ConnectionString和-ConnectionString参数覆盖默认行为。看,这太荒谬了。我添加了一个新的工作者角色项目,默认情况下它被设置为启动项目。现在,每当我添加迁移时,它都会从头开始在我的上下文中创建所有表,而我对此一无所知。你的回答救了我一命:)