- 에러내용
예외 정보: System.Data.MetadataException: 지정된 스키마가 잘못되었습니다. 오류:
Test.Test.ssdl(2,49) : 오류 0172: 모든 SSDL 아티팩트는 동일한 공급자를 사용해야 합니다. Provider 'System.Data.SqlClient'은(는) 이전에 사용된 'System.Data.SqlClient'과(와) 다릅니다.
Test.Test.ssdl(2,85) : 오류 0169: 모든 SSDL 아티팩트는 동일한 공급자를 사용해야 합니다. ProviderManifestToken '11.1'은(는) 이전에 사용된 '2008'과(와) 다릅니다.
- 해결
ConnectionString Metadata 내 링크의 "*" 을 해당 DLL 명으로 교체해주면 됩니다.
- 프로젝트 구조
새로운 웹서비스에서 EntityFramework 를 이용한 EDMX 파일이 생성된 프로젝트를 참조하여
웹서비스내에서 직접 Ling To Entity 를 사용하여 질의하기 위해서는 EntityFramework ConnectionString 사용하기 위해 DLL 명을 사용 하여야 합니다.
- Common.Model.Oracle
EDMX 파일 위치
- kr.co.test
웹서비스
- Common.Model.Oracle 프로젝트의 App.config ConnectionString
<add name="Entities" connectionString="metadata=res://*/Test.Test.csdl|res://*/Test.Test.ssdl|res://*/Test.Test.msl;provider=Oracle.DataAccess.Client;provider connection string="DATA SOURCE=SOURCE_NAME;PASSWORD=PASSWORD;PERSIST SECURITY INFO=True;USER ID=ID"" providerName="System.Data.EntityClient" />
- kr.co.test 프로젝트의 Web.Config 파일 내 ConnectionString
<add name="Entities" connectionString="metadata=res://Common.Model.Oracle/Test.Test.csdl|res://Common.Model.Oracle/Test.Test.ssdl|res://Common.Model.Oracle/Test.Test.msl;provider=Oracle.DataAccess.Client;provider connection string="DATA SOURCE=SOURCE_NAME;PASSWORD=PASSWORD;PERSIST SECURITY INFO=True;USER ID=ID"" providerName="System.Data.EntityClient" />