如何根据环境配置实体框架以使用不同的连接字符串?

时间:2014-06-09 20:56:15

标签: c# linq entity-framework entity-framework-6 ef-database-first

我的公司根据项目的开发阶段使用不同的数据库。目前我正在努力推动实体框架+ LINQ的采用,但当被问及如何在我们的多个环境中工作时遇到了绊脚石。

他们认为必须为每个环境手动更改它们,因此需要永远部署。

如何配置EF Database-First在开发,测试和生产服务器上使用不同的连接?

我可以设置某种变量吗?我错过了一个选项吗?

2 个答案:

答案 0 :(得分:0)

编辑:可能重复Managing a Debug and Release Connection String

您可以使用app.config或web.config文件指定应用程序使用的连接字符串,具体取决于您正在使用的项目类型。

阅读这篇精彩文档:http://msdn.microsoft.com/en-us/data/jj592674

对于使用EF的数据库优先应用程序,这是一个示例app.config:

<configuration>  
  <connectionStrings>  
    <add name="Northwind_Entities"  
         connectionString="metadata=res://*/Northwind.csdl|  
                                    res://*/Northwind.ssdl|  
                                    res://*/Northwind.msl;  
                           provider=System.Data.SqlClient;  
                           provider connection string=  
                               &quot;Data Source=.\sqlexpress;  
                                     Initial Catalog=Northwind;  
                                     Integrated Security=True;  
                                     MultipleActiveResultSets=True&quot;"  
         providerName="System.Data.EntityClient"/>  
  </connectionStrings>  
</configuration>

您可以在调试和发布期间使用不同的app.config(这里是说明http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/),这使EF很容易在不同的环境中选择不同的配置。

答案 1 :(得分:0)

根据您的.net版本,您可以使用web.config.debug和web.config.release

Here is a related SO question with more information