c# - 如何在我的 DbContext 上切换连接?
问题描述
public partial class Accident_Reporting_Entities : DbContext
{
public Accident_Reporting_Entities(string connectionString) :
base(getConnectionString(connectionString))
{
}
public static string getConnectionString(string Facility) {
switch (Facility) {
case "Location1":
return "Accident_Reporting_Entities";
case "Location2":
return "Accident_Reporting_2_Entities";
case "Location3":
return "Accident_Reporting_3_Entities";
default:
return "Accident_Reporting_Entities";
}
}
}
在上面的代码中,我已经做到了,以便Accident_Reporting_Entities
可以更改连接。我想知道在 MVC 5 中设置这个变量的最佳实践是什么。我曾考虑过使用会话变量,但我不确定这是设置此连接的最佳方式。
我将举例说明当前如何设置:
public class IncidentController : Controller
{
private Accident_Reporting_Entities DB = new Accident_Reporting_Entities(System.Web.HttpContext.Current.Session["Facility"].ToString());
[HttpPost]
public ActionResult CreateIncident(string Facility)
{
System.Web.HttpContext.Current.Session["Facility"] = Facility;
var incident = new AccidentSupervisorViewModel();
incident.Departments = DB.Departments.ToList().Select(i => new SelectListItem
{
Text = i.DepartmentName,
Value = i.Id.ToString()
}
);
return View(incident);
}
}
使用上面的代码,我遇到了在视图加载后设置 DB DbContext 变量的问题,因此在尝试使用操作之前将 DB 连接设置为之前设置的任何值CreateIncident
。如果我刷新页面,它工作正常。除了我没有考虑的会话变量之外,还有其他方法,或者有更好的方法来设置它吗?
解决方案
推荐阅读
- java - java - 如何在Java中使用Google Analytics Data API(GA4)来扩展获取值以获取screenPageViews的计数?
- java - 什么时候在java中打开数据库连接
- kotlin - 如何访问服务中的标头?
- node.js - Node & Docker,安装 Node 模块后无法运行脚本
- linux - 如何使用 ssmtp 发送电子邮件
- django - 安装了使用 Celery 和 Django Channels 运行时的 Scrapy 错误:OSError: [Errno 9] Bad file descriptor
- r - 删除 fviz_silhouette 中的网格?
- f# - F# 中的选择类型实现
- python - python在使用坐标计算2个地方之间的距离时得到ValueError
- r - 基于过滤条件的数据框标签列表