LINQ에서 SQL에서 데이터베이스 이름을 동적으로 설정하십시오
-
07-07-2019 - |
문제
LINQ에서 SQL을 사용하여 응용 프로그램에서 데이터베이스에 연결하고 있습니다. 생산에서 스테이징으로 환경을 변경할 때는 web.config에서 연결 문자열을 업데이트 할 수 있습니다. 그러나 환경이 변경 될 때 업데이트해야 할 가치가 하나 더 있습니다. 데이터베이스 이름입니다. LINQ에서 SQL Designer 파일에서 데이터베이스 이름은 다음과 같은 속성으로 언급됩니다.
[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]
일부 구성 파일에서 이름의 값을 동적으로 선택하려면 어떻게해야합니까?
모든 도움은 정말 감사합니다.
해결책
언급했듯이http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.databaseattribute.name.aspx
"데이터 이름은 연결 자체가 데이터베이스 이름을 지정하지 않는 경우에만 사용됩니다." 따라서이 속성을 삭제할 수 있고 모두 잘 작동합니다!
다른 팁
나는 래퍼 클래스를 사용하여 라인을 따라 컨텍스트를 제공했습니다.
public DataContext Context = new DataContext(SqlConnectionString); //much simplified
Visual Studio 외부에서 .dbml 파일을 편집 하여이 문제를 해결하고 (디자이너는 DatabasEattribute에 액세스 할 수없는 것 같습니다) 여기에서 이름 속성을 제거합니다.
<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
(허용 된 답변이 더 이상 올바르지 않습니다.이 속성은 내 연결 문자열을 재정의했습니다)
제휴하지 않습니다 StackOverflow