여기에 당신이 요구하는지 무슨 생각을 할 수있는 매우 간단한 방법이다. 당신의 web.config 파일에서, 당신은 당신이 연결 문자열을 정의 할 수 있습니다 :
<connectionStrings>
<add name="DevelopmentDB" providerName="System.Data.SqlClient"
connectionString="Data Source=sql-dev.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
<add name="ProductionDB" providerName="System.Data.SqlClient"
connectionString="Data Source=sql-prod.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
</connectionStrings>
그런 다음 (기본) 컨트롤러, 당신은 같은 요청에 따라 적절한 연결 문자열을 반환하는 방법을 만들 수 있습니다 :
internal string ConnectionString
{
get
{
return getConnectionStringByServerName(this.HttpContext.Request.ServerVariables["SERVER_NAME"]);
}
}
internal string getConnectionStringByServerName(string serverName)
{
if (serverName.Equals("localhost"))
{
return WebConfigurationManager.ConnectionStrings["DevelopmentDB"].ConnectionString;
}
else
{
return WebConfigurationManager.ConnectionStrings["ProductionDB"].ConnectionString;
}
}
무엇보다 가장 중요한 선택 기준을 변경할 수 있습니다.
행운을 빈다.
어떻게 데이터베이스에 연결하고 있습니까? ADO.NET? LINQ to SQL? 엔티티 프레임 워크? NHibernate? 다른 것? – jrista
예, Entity Framework를 사용하고 있습니다 ... – dattebayo