2010-02-11 2 views
7

그래서 이야기가 이와 같습니다.EDMX 연결 문자열

PAUD.DLL이라는 프로젝트가 있는데 그 안에 엔티티 모델이 있습니다 (edmx).

PA.DLL을 참조하는 다른 프로젝트에서 주 app appconfig에 edmx 파일을 만들 때 (자동으로) 만들어진 연결 문자열을 복사했습니다.

그러나, 나는 다음 줄을로드하고 실행할 때 :

using (PAEntities analytix = new PAEntities()) 
      { 
... 
} 

나는 다음과 같은 오류가 발생합니다 :

System.ArgumentException: The specified default EntityContainer name 'PAEntities' could not be found in the mapping and metadata information. 

사람이 오류에 대한 어떤 생각 어떤 원인을 가지고 있습니까?

<add name="PAEntities" 
    connectionString="metadata=res://*/PAEntities.csdl|res://*/PAEntities.ssdl|res://*/PAEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=XSXSX;Initial Catalog=PA;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

감사

답변

3

하나 개의 솔루션이 DLL을 소모 프로젝트의 구성 파일에 연결 문자열을 배치하는 것입니다 :

이 내 연결 문자열 구성 방법입니다.
다른 하나는 코드에서 연결 문자열을 전달하는 것입니다 (PAEntities의 매개 변수화 된 생성자 사용).

7

솔루션 탐색기에서 엔터티 데이터 모델 파일 (.edmx)을 마우스 오른쪽 단추로 클릭하고 '연결 프로그램'을 클릭하십시오. 파일을 열 수있는 프로그램을 선택하는 대화 상자가 열립니다. 'XML (텍스트 편집기)'를 선택하거나 더블 클릭하십시오.

이제 'EntityContainer'이름을 쉽게 편집 할 수있는 XML 버전의 EDM 파일을 살펴 보았습니다.

webconfig 파일에서 연결 문자열을 변경 한 경우 해당 XML 파일의 'DefaultContainerName'섹션이 'EntityContainer'섹션에 있는지 확인하십시오.

일반적으로 * .Designer.cs 파일의 defaultContainerName을 업데이트하면 XML 파일이 업데이트되지 않습니다. 따라서 수동으로 수행해야합니다.