Как я могу переключить соединение на моем DbContext? - PullRequest
0 голосов
/ 27 февраля 2019
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 устанавливается после загрузки представления, поэтому соединение с БД устанавливается на то, что было ранее установлено, прежде чем пытаться использовать действие CreateIncident,Если я обновлю страницу, она будет работать нормально.Есть ли альтернативный метод, отличный от переменной сеанса, о котором я не думаю, или лучший способ установить его для начала?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...