c# – 如何在我的.edmx EF模型中切换多个相同的模式数据库?

(我已经编辑了这个问题,现在它与原来的问题不同了.)

我有不同但相同的架构数据库.我在我的应用程序中使用.edmx实体框架模型对此模式进行了建模

总而言之,生成在多个sql Server上的相同数据库模式,并且能够在运行时更改我的.edmx模型的数据库连接,因此我可以在访问这些不同的数据库之间切换.

现在我想在运行时在这些不同的数据库之间切换.优选地以简单的方式.我究竟是怎么做到的?

一步一步的教程或精确,所有包含,代码示例将不胜感激.

下面是我的连接字符串在Web.config中的外观示例:

<add name="MyModelEntities" connectionString="Metadata=res://*/Dal.ToolA.ToolATestOne.csdl|res://*/Dal.ToolA.ToolATestOne.ssdl|res://*/Dal.ToolA.ToolATestOne.msl;provider=System.Data.sqlClient;provider connection string=&quot;data source=MyServer\MysqLServer;initial catalog=MyDatabase;user id=MyUser;password=MyPassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

解决方法

DbContext类有一个构造函数参数nameOrConnectionString.根据初始化DbContext的方式,您可以传递不同的连接字符串名称.例如,如果您将它们存储在国家/地区名称中,例如:

<connectionStrings>
  <add name="YourApplication_UK" connectionString="..."/>
  <add name="YourApplication_norway" connectionString="..."/>
  <add name="YourApplication_Sweden" connectionString="..."/>
</connectionStrings>

然后从代码中,您可以构造适当的连接字符串名称

string connectionStringName = "YourApplication_" + myApplicationLocation;
var dbContext = new DbContext(connectionStringName);

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...