我的DbContext类:
public Accident_Reporting_LAX_2019_Entities(string connectionString) : base(connectionString)
{
}
在我的控制器中,我想我可以使用会话变量设置连接字符串,但是我没有任何运气尝试设置它。我可能会忽略一些简单的事情,因为我不太了解MVC / C#。如果在这种情况下无法使用会话变量,那么分配连接字符串的另一种方法是什么?
我将为我的想法发布伪代码,并希望有人可以对其进行纠正/改进。它不必是会话变量,我只需要能够更改连接字符串即可。
public class IncidentController : Controller
{
private static string facility = HttpContext.Current.Session["Facility"];
private Accident_Reporting_LAX_2019_Entities LAX_DB = new Accident_Reporting_LAX_2019_Entities(facility);
}
尝试设置facility
变量时遇到的错误是“字段初始化程序无法引用非静态字段方法或属性“ Controller.HttpContext”。
答案 0 :(得分:0)
要更改web.config中的配置变量-
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=...";
configuration.Save();
答案 1 :(得分:0)
无法在静态字段中访问HttpContext
按如下所示移动构造函数中的所有内容:
private string facility;
private Accident_Reporting_LAX_2019_Entities LAX_DB;
public IncidentController (){
facility = HttpContext.Current.Session["Facility"];
LAX_DB = new Accident_Reporting_LAX_2019_Entities(facility);
}
这样做可以使用您的Facility变量初始化每个请求