2012-12-13 1 views

답변

4

지금까지 찾은 유일한 방법은 연결 문자열 이름을 사용하는 대신 연결 문자열을 직접 사용하여 컨텍스트를 만드는 것입니다. 이렇게하면 ApplicationIntent을 추가 할 수 있습니다.

string connectionString = string.Format("{0}; ApplicationIntent=READONLY", ConfigurationManager.ConnectionStrings["AppContext"].ConnectionString); 

using (AppContext context = new AppContext(connectionString)) 
{ 
    var q = from row in context.table 
      select row.id; 
} 
+0

여기에서 필자는 이와 비슷한 접근 방식을 사용하여 큰 성공을 거두었지만 쓰기 액세스가 필요한지 여부를 매개 변수로 사용하는 정적 "팩토리"클래스를 사용하고, false 인 경우 컨텍스트의 인스턴스를 반환합니다 ApplicationIntent가 포함되어 있습니다. 이렇게하면 (모든 클래스에 연결 문자열을 작성하는 것이 아니라) 훨씬 명확한 코드가 작성되고 목표를 달성 할 수 있습니다. Factory.GetDataContext와 같은 것 (bool needsWrite = false) – OperatorOverload

-1

다음 연결 속성은 .NET 프레임 워크 4.5하는 SqlClient에 추가되었습니다

MultiSubnetFailover

차 복제가 읽기 전용 워크로드를 거부하도록 구성되어 있으면 연결이 실패합니다 • ApplicationIntent • 연결 문자열에

ApplicationIntent=ReadOnly; 

here을 참조하십시오.

+1

질문은 ApplicationIntent 속성에 대한 정의가 아닙니다. 사실, 이미 게시 한 문서 링크를 참조했습니다. 나는 그것이 무엇인지 이해한다. 질문은 Entity Framework에서이 문제에 대한 지원에 관한 것입니다. –

관련 문제