我有一个使用Entity Framework 6的ASP.NET网站。我使用Database First方法创建Model并使用EntitesToDTOs为所有表创建DTO。现在我需要能够轻松更改它使用的数据库。数据库基本上是彼此的副本,但是它们彼此分开,具有不同的连接字符串。
现在我可以通过手动更改配置文件中的连接字符串来切换数据库。有3个配置文件需要更改。
手动修改每个配置文件的以下部分。
<?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="data source=...connection string info...;multipleactiveresultsets=True;application name=EntityFramework"" 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="data source=...connection string info...;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />-->
</connectionStrings>
</configuration>
有没有办法自动执行此过程或以编程方式执行所有操作,可能基于web.config文件中的常规连接字符串?
这是Web.config文件中的常规连接字符串,它反映了需要使用的实体数据库。
<add name="Database1" connectionString="..." providerName="System.Data.SqlClient" />
答案 0 :(得分:1)
听起来好像你想为不同的场景设置不同的构建配置。您可以使用Web.config transformations轻松管理此Web,并使用this tutorial将相同的过程应用于其他.NET项目。