Как сравнить строку 'location' и вызвать множественное имя строки подключения в DBContext, если строка соответствует значению, а также передать значение строки из контроллера в DBContext. В основном я хочу подключить другую базу данных, чтобы получить результат.
1) Файл Web.config
<connectionStrings>
<add name="mum_Conn" connectionString="my connection string" />
<add name="chd_Conn" connectionString="my connection string" />
<add name="hyd_Conn" connectionString="my connection string" />
<add name="goa_Conn" connectionString="my connection string" />
<add name="pun_Conn" connectionString="my connection string" />
</connectionStrings>
2) DBContext: -
public class MasterDal: DbContext
{
static MasterDal()
{
Database.SetInitializer<MasterDal>(null);
}
public MasterDal() : base("mum_Conn") { }
public DbSet<ProjectListModel> prjlstModel { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<ProjectListModel>().ToTable("tbl_projects");
}
}
3) Контроллер: -
public class FMPDataController : Controller
{
public ActionResult FMP_Report()
{
MasterViewModel obj = new MasterViewModel();
MasterDal dal = new MasterDal();
List<ProjectListModel> prjColl = new List<ProjectListModel>();
try
{
string name = @Session["username"].ToString();
if (System.Configuration.ConfigurationManager.AppSettings.Get("mis_rpt_access").Contains(name))
{
prjColl = (from x in dal.prjlstModel
orderby x.codes select x).ToList<ProjectListModel>();
obj.projectlist = prjColl;
}
else
{
prjColl = (from x in dal.prjlstModel
where x.is_active == 1 orderby x.codes
select x).ToList<ProjectListModel>();
obj.projectlist = prjColl;
}
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "');</script>");
}
return View(obj);
}
}
4) Результат, который я хочу получить в DBContext (т.е. класс MasterDal: DbContext)
if (location.equal("MUM"))
{
// call Mumbai DBConnection string name
}
else if (location.equal("HYD"))
{
//call Hyderabad DBConnection string name
}