문제

에 Linq2Sql 연결할 수 있는 데이터의 컨텍스트를 여러 데이터베이스가 데이터베이스 이름을 원.

이 있을 달성하는 방법을 이 Linq 에서 2 체/ADO.net 엔터티 Framework?할 수 있는 데이터베이스 이름은 어딘가에 테이블에 추가되 이름?

으로 바꾸려고 노력했는'스키마에서'dbo 다.dbo, 지만,EF 캡슐화합니다 이로

SELECT FROM [MyDatabase.dbo].[MyTable]

속임수 같은'변화하는 스키마에' '다].[dbo' 것으로 탈출

SELECT FROM [MyDatabase]].[dbo].[MyTable]

(마음에 두 개의 ]].)

도움이 되었습니까?

해결책

첫째, 이것은 공식적으로 지원.

대답은 당신에 대한 링크를 LINQ 에 대한 SQL 입 수있는 기능을 사용하여 DB 서버지 유형이 다른 쿼리를 처리합니다.이런 작동하지 않는 엔티티 프레임워크,그것의 DB 서버 기능이 아니라 기능을 하나의 프레임 워크입니다.다시 말해서,LINQ to SQL 에서는 여전히 다루는 연결하는 경우에만 하나의 데이터베이스 서버에 참여했다.곰에서 마음,그러나,모든 DB 서버가 이것을 할 수 있습니다.

로 무엇을 변경하에서의 데이터한 스키마의 특성 EntitySet 노드에"다.컨텐츠"섹션에 있습니다.

주의할 점에 대해 이 기술을 업데이트할 때의 모델 데이터베이스에서,저장소 모델이 닦아내고 처음부터.그래서 당신이 다시 적용해야 합니다.이것이 문제가 되지 않 LINQ 에서 SQL 기 때문에,LINQ to SQL 을 지원하지 않는 자동 업데이트를 데이터베이스에서 모두.

더 나은 대안이 있을 것을 만들기에 참조 데이터베이스는 다른 데이터베이스는지도 보기 매핑하는 대신 표하고 다른 데이터베이스에 직접 있습니다.

다른 팁

데이터베이스가 SQL 동의어를 지원하는 경우 두 데이터베이스 정의를 하나의 파일로 병합 할 수 있습니다. 나는 최근에 그것을했고 내가 어떻게했는지 게시했습니다. 여기 관심이 있다면.

기본적으로 데이터베이스를 가리키는 데이터베이스에서 동의어를 생성하고 각 데이터베이스에 대해 별도의 EDMX 파일을 작성한 다음 스크립트를 실행하여 EDMX 파일을 동의어 설정이있는 데이터베이스에 연결되는 단일 파일로 병합합니다.

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