문제

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">

(허용 된 답변이 더 이상 올바르지 않습니다.이 속성은 내 연결 문자열을 재정의했습니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top