2009-06-08 2 views

답변

8

DataContext를 새로 만들 때 오버로드 중 하나에 연결 문자열이 사용됩니다. 따라서 컴파일러 스위치는 다음과 같습니다.

#if Debug 
string connectionString = .... 
#else 
string connectionString = ... 
#endif 

DbDataContext db = new DbDataContext(connectionString); 
+0

코드에서 연결 문자열을 app/web.config 또는 다른 중앙 집중식 구성 소스로 옮길지라도이 주석에 동의합니다. – Serapth

+0

그래도 가능합니다. 구성 파일에는 두 부분이있을 수 있으며 코드에서 연결 문자열을 할당 할 때 디버그 여부에 관계없이 올바른 한 가지 기본 정보를 얻을 수 있습니다. – BFree

2
using (MyDataContext dc = new MyDataContext(connectionString)) 
{ 
    //do a unit of work. 
} 
7

웹/앱 구성에서 연결 문자열을 사용합니다. dev/test/prod에 대해 여러 개의 config를 지정하십시오. 각각에는 적절한 연결 문자열이 있어야합니다. 각 환경의 구성을 전환하십시오.

+0

나는이 접근법을 결코 좋아하지 않았고 오류가 많은 여지를 남겨둔 것처럼 보인다. –

+0

디바이스를 디폴트로 설정했습니다. 그게 내 로컬 컴퓨터에서 테스트 또는 찌르다 중 하나에서 사용할 수없는 일이. 앱의 게시가 설정을 전환하지 않으면 앱이 큰 소리로 일찍 실패합니다. – tvanfosson

+0

+1 올바른 답변입니다. 당신은 msbuild를 사용하여 web.config 섹션을 대체 할 수 있음을 언급해야합니다. 즉, 디버그 빌드에서 DEV conn 문자열을 얻습니다. 그러나 릴리스 빌드에서 PROD 문자열은 –

관련 문제