具有多个数据库的asp.net mvc实体框架

时间:2012-10-11 05:24:24

标签: entity-framework entity-framework-4 asp.net-mvc-4 edmx edmx-designer

我有一个使用EF的ASP.Net MVC项目。我在工作计算机和家用计算机上开发此应用程序。以下是我的Web.config。如何使用每个办公室的正确连接字符串更改EDMX?到目前为止,我必须删除EDMX并重新添加它们并注释掉其他连接字符串。感谢。

    <connectionStrings>
    <clear/>
    <!-- At Home connections -->
    <add name="App1Entities" connectionString="metadata=res://*/Models.App1Model.csdl|res://*/Models.App1Model.ssdl|res://*/Models.App1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=my-pc\SqlExpress;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="Service1Entities" connectionString="metadata=res://*/Models.Service1Model.csdl|res://*/Models.Service1Model.ssdl|res://*/Models.Service1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=my-pc\SqlExpress;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

    <!-- At Work connections 
    <add name="App1Entities" connectionString="metadata=res://*/Models.App1Model.csdl|res://*/Models.App1Model.ssdl|res://*/Models.App1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=sqlServer1;initial catalog=App1Database;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    <add name="Service1Entities" connectionString="metadata=res://*/Models.Service1Model.csdl|res://*/Models.Service1Model.ssdl|res://*/Models.Service1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=sqlServer2;initial catalog=ServiceDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
    -->
</connectionStrings>

3 个答案:

答案 0 :(得分:1)

假设这两个数据库中的模式相同,那么只需更换web.config中的连接字符串即可。所以我真的不明白你的困惑是什么。

答案 1 :(得分:0)

使用Visual Studio,您可以使用Config Tranforms根据模式生成不同的配置设置(默认设置为“Release”和“Debug”,您可以添加其他设置)。

为连接字符串设置转换,然后当您将站点发布到Release模式时,正确的连接字符串将在那里。

为“Home”或其他内容添加一个模式,并在家中为您的环境提供适当的连接字符串。

答案 2 :(得分:0)

您需要多个连接字符串,但不必在代码中添加开关;使用

<connectionStrings configSource="MyLocalConnectionStrings.config" />

see MSDN

您需要在与web.config相同的目录中维护MyLocalConnectionStrings.config,并为每个开发环境使用不同的版本。