Я работаю над проектом на какое-то время, у которого есть производственная версия, работающая в среде совместного размещения, и одна на моей машине разработки. Проблема в том, что каждый раз, когда я хочу запускать приложение на моей машине разработки, мне придется изменить параметры строки подключения, чтобы указать на локальную машину разработки и наоборот, когда я хочу опубликовать. Это стало настолько неудобным для меня, пока я не придумал такие решения, которые работают как минимум. Мой вопрос в том, является ли это мое решение профессиональным и надежным в среде Aspnet? Или есть лучший и проверенный способ добиться этого решения лучше? Спасибо. см. код для деталей.AspNet Mvc автоматически выбирает ConnectionString
//Created a static method in Global.asax.cs
/// <summary>
/// Returns Connection settings based on the machine. i.e, automatically select connection strings if it's development or live server
/// </summary>
/// <param name="ArrayIndex"></param>
/// <returns> string BaseConn = (connectionstring name) </returns>
public static string
Settings(int ArrayIndex)
{
string[] BaseConn ={ HttpContext.Current.Request.IsLocal ? System.Configuration.ConfigurationManager.ConnectionStrings[4].Name :
System.Configuration.ConfigurationManager.ConnectionStrings[1].Name,
//Identity database connections
HttpContext.Current.Request.IsLocal ? System.Configuration.ConfigurationManager.ConnectionStrings[5].Name :
System.Configuration.ConfigurationManager.ConnectionStrings[2].Name,
//store database connection
HttpContext.Current.Request.IsLocal ? System.Configuration.ConfigurationManager.ConnectionStrings[6].Name :
System.Configuration.ConfigurationManager.ConnectionStrings[3].Name,
};
return BaseConn[ArrayIndex];
}
Тогда я назвал метод в классе DbContext прослеживание
public class MyAppDb :DbContext
{
public MyAppDb()
: base(MvcApplication.Settings(0))
{ }
// Some entity tables here
}
Я сделал то же самое для магазина DbContext и идентичность DbContext. Все кажется прекрасно работающим как на местной, так и на живой машине. хотя я не смог обновить базы данных с помощью этого решения с помощью миграции codefirst. На данный момент не проблема.
Большое количество Codebased для вашего времени. Это похоже на стандартный способ сделать это. Я должен использовать это вместо своего собственного решения, хотя работа без ошибок. – codein