c# - 如何在项目中使用多个实体框架连接字符串?
问题描述
我创建了一个存储库类并具有以下代码:
public class InventoryDA : Accident_Reporting_Entities
{
}
网络配置:
<add name="Accident_Reporting_Entities" connectionString="metadata=res://*/Models.IncidentModel.csdl|res://*/Models.IncidentModel.ssdl|res://*/Models.IncidentModel.msl;provider=System.Data.SqlClient;provider connection string="data source=server;initial catalog=Accident_Reporting;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="Accident_Reporting_Entities2" connectionString="metadata=res://*/Models.IncidentModel.csdl|res://*/Models.IncidentModel.ssdl|res://*/Models.IncidentModel.msl;provider=System.Data.SqlClient;provider connection string="data source=server;initial catalog=Accident_Reporting2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
我想知道如何拥有多个连接并Accident_Reporting__Entities
用另一个连接字符串替换。连接来自具有相同设计的不同数据库。是否可以检查会话变量并根据变量更改此连接,这是最好的方法吗?
解决方案
您可以将相同的 DbContext 与多个连接字符串一起使用:
public partial class SchoolDBEntities : DbContext
{
public SchoolDBEntities(string connectionString) : base(connectionString)
{
}
}
var db1 = new SchoolDBEntities("Server=myServerAddress;Database=myDataBase1;User Id=myUsername;Password=myPassword;");
var db2 = new SchoolDBEntities("Server=myServerAddress;Database=myDataBase2;User Id=myUsername;Password=myPassword;");
或者,您可以将 Web.config 文件中的密钥名称传递给构造函数:
<configuration>
<connectionStrings>
<add name="myDataBase1" connectionString="Server=myServerAddress;Database=myDataBase1;User Id=myUsername;Password=myPassword;" />
<add name="myDataBase2" connectionString="Server=myServerAddress;Database=myDataBase2;User Id=myUsername;Password=myPassword;" />
</connectionStrings>
</configuration>
var db1 = new SchoolDBEntities("myDataBase1");
var db2 = new SchoolDBEntities("myDataBase2");
推荐阅读
- node.js - 使用基本身份验证在nodejs中发布请求
- node.js - 值嵌套在数组中时如何区分(计数)值?
- react-native - React-Native:即使在真实设备上,键盘也会运行缓慢
- javascript - 函数表达式与函数声明:返回值
- angular - 每次用户更新 Angular 中的输入文本字段时调用一个函数
- python - mypy html 报告的图例或文档?
- c# - C# RoslynCompiler 在类继承 Dictionary 时失败
- r - POSIXlt 组件的提取在 R 3.4.4 中运行良好,但在 R 3.5.0 中出现错误。为什么?
- c - 如何创建指向另一个链表的链表?
- javascript - 如何使精灵跟随Phaser 3中的另一个精灵