我如何配置实体框架使用不同的连接字符串取决于其环境

本文关键字:连接 字符串 环境 取决于 何配置 配置 框架 实体 | 更新日期: 2023-09-27 18:08:03

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

他们的印象是必须为每个环境手动更改,因此将花费很长时间来部署。

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

我可以设置一些变量吗?我错过了什么选择吗?

我如何配置实体框架使用不同的连接字符串取决于其环境

编辑:管理调试和发布连接字符串的可能副本

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

阅读这个伟大的文档: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在不同的环境中选择不同的配置非常容易。

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

这是一个相关的SO问题,有更多的信息