微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐