【问题标题】:asp.net mvc entity framework with multiple databases具有多个数据库的 asp.net mvc 实体框架
【发布时间】:2012-10-11 05:24:23
【问题描述】:

我有一个使用 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>

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      <connectionStrings configSource="MyLocalConnectionStrings.config" />
      

      see MSDN

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

      【讨论】:

        【解决方案3】:

        使用 Visual Studio,您可以使用 Config Tranforms 根据在​​配置管理器中选择的模式(默认设置“发布”和“调试”,您可以添加其他)生成不同的配置设置。

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

        为“家庭”或其他内容添加模式,并根据您在家的环境使用适当的连接字符串。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多