단일 ASP.NET 애플리케이션에서 엔티티 프레임 워크를 사용하여 여러 버전의 SQL Server

StackOverflow https://stackoverflow.com/questions/1061409

문제

SQL Server 2000, 2005 및 2008을 사용하는 웹 애플리케이션에서 엔티티 프레임 워크를 사용하고 있습니다. 2008 (최초의 EDMX 버전)을 사용하여 새 EDMX 파일을 만들 때받을 수 있습니다. error 0172: All SSDL artifacts must target the same provider. The Provider 'MyDatabase' is different from ' MyDatabase ' that was encountered earlier. 코드 어딘가에 연결은 2008 데이터 스토어에 연결되어 있으며 SSDL 파일을 확인하고 다른 공급자 ManifestToken 값을 볼 때이 오류가 발생합니다. 나는 좌절하는 것 이상입니다. EF가 응용 프로그램 당 단일 버전의 SQL Server에서만 작동한다고 상상하기는 어렵습니다. 설정이나 해결 방법이 있어야한다고 확신합니다. 단일 웹 애플리케이션 내에 다른 버전의 SQL Server와 엔터티 프레임 워크를 사용할 수있는 솔루션이 있습니까?

도움이 되었습니까?

해결책

나는 각각을 넣어서 이것을 달성 할 수 있었다 edmx 별도의 어셈블리에서. 그런 다음 연결 문자열에서 모든 것을 교체하십시오 res://*/... ~와 함께 res://NameOfAssembly/...

두 엔티티 모델 (다른 출처에서 찾은 주장과는 달리) 사이에 조인을 수행 할 수도 있습니다.

var oneDb = new Entities2000();
var otherDb = new Entities2005();

var results = from one in oneDb.SomeSet
              join other in otherDb.OtherSet
                  on one.Property equals other.Property
              select new { 
                  SomeProp = one.SomeProp,
                  OtherProp = other.OtherProp 
              };

다른 팁

이 링크는 SQL Server 2005와 2008에 차이가 있었을 때 문제를 해결하는 데 도움이되었습니다.http://kkryczka.wordpress.com/2011/01/03/all-ssdl-artifacts-must-target-the-provider-the-providermanifesttoken-2008-is-different-from-2005- 직접적 인/

.edmx 파일을 마우스 오른쪽 버튼으로 클릭하고 XML 편집기로 열기를 선택하십시오. 엔티티 프레임 워크 열기 .EDMX 파일 :

제공자 관리를 2008으로 변경하십시오.

Microsoft에게 알려진 문제처럼 보입니다.

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