【发布时间】:2014-10-12 20:27:36
【问题描述】:
我有一个使用 Entity Framework 6 的 ASP.NET 网站。我使用 Database First 方法创建模型并使用 EntitesToDTOs 为所有表创建 DTO。现在我需要能够轻松更改它使用的数据库。数据库基本上是彼此的副本,但是它们通过不同的连接字符串彼此分开。
现在我可以通过手动更改配置文件中的连接字符串来切换数据库。有 3 个配置文件需要更改。
- 网站项目中的Web.config(参考和使用#2)
- DataAccess 项目中的App.config(参考和使用#3)
- DatabaseModel 项目中的 App.config(包含实体模型)
每个配置文件的以下部分是手动修改的。
<?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" />
【问题讨论】:
标签: asp.net entity-framework connection-string