更改数据库第一个实体模型的连接字符串

时间:2014-08-19 16:27:39

标签: asp.net entity-framework connection-string

我有一个使用Entity Framework 6的ASP.NET网站。我使用Database First方法创建Model并使用EntitesToDTOs为所有表创建DTO。现在我需要能够轻松更改它使用的数据库。数据库基本上是彼此的副本,但是它们彼此分开,具有不同的连接字符串。

现在我可以通过手动更改配置文件中的连接字符串来切换数据库。有3个配置文件需要更改。

  1. 网站项目中的Web.config(引用和使用#2)
  2. DataAccess项目中的App.config(引用并使用#3)
  3. DatabaseModel项目中的App.config(包含实体模型)
  4. 手动修改每个配置文件的以下部分。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    
      ...
    
      <connectionStrings>
        <!-- Entity Framework Connection Strings - Uncomment the one in use -->
    
        <!-- Entities Database 1 -->
        <add name="ClientEntities" connectionString="metadata=res://*/ClientModel.csdl|res://*/ClientModel.ssdl|res://*/ClientModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=...connection string info...;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    
        <!-- Entities Database 2 -->
        <!--<add name="ClientEntities" connectionString="metadata=res://*/ClientModel.csdl|res://*/ClientModel.ssdl|res://*/ClientModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=...connection string info...;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />-->
      </connectionStrings>
    </configuration>
    

    有没有办法自动执行此过程或以编程方式执行所有操作,可能基于web.config文件中的常规连接字符串?

    这是Web.config文件中的常规连接字符串,它反映了需要使用的实体数据库。

    <add name="Database1" connectionString="..." providerName="System.Data.SqlClient" />
    

1 个答案:

答案 0 :(得分:1)

听起来好像你想为不同的场景设置不同的构建配置。您可以使用Web.config transformations轻松管理此Web,并使用this tutorial将相同的过程应用于其他.NET项目。