문제

어쩌면 이것은 단지 어리석은 생각 일 것입니다. 그래서 내가 여기에 던지는 이유입니다.

기본 데이터 및 현재 데이터에 하나의 데이터베이스 (고객, 기사, 재고, 열기 송장, ...) 및 아카이브 데이터 (이전 송장, 인벤토리 이동, ...)를위한 매년 하나의 데이터베이스를 사용하여 응용 프로그램을 작성하고 있습니다.

불쾌한 작은 문제는 하나뿐입니다 : MSDTC. 대부분의 트랜잭션은 하나의 데이터베이스 만 터치하지만 몇 가지는 현재 데이터베이스와 1 개의 아카이브 연도를 터치합니다. 모든 데이터베이스가 동일한 서버에서 사임하므로 이는 두 데이터베이스에서 간단한 트랜잭션 일 수 있습니다.

그러나 LINQ에서 엔터티에 대한 LINQ는 각 데이터베이스에 대해 별도의 연결을 만들도록 강요하고, 여기서 MSDTC가 시작되어 a) 설치를 요구하고 b) 모든 것을 느리게합니다.

성가신!

두 개의 ADO.NET 엔티티 프레임 워크 모델을 얻을 수있는 방법이 없으며 동일한 연결을 사용하여 현재 데이터베이스를 사용합니다.

나는 이미 노력했다 EF 스키마에서 데이터베이스를 지정하지만 EF는이 점이 마음에 들지 않고 차단합니다.

매우 성가신. 어쩌면 나는 모든 테이블을 하나의 데이터베이스로 옮기는 것만으로도 백업 및 속도 업을 위해 데이터를 분리하려고 할 때 나중에 길을 따라가는 고통입니다.

도움이 되었습니까?

해결책

연결에서 ChangeABase를 호출하십시오. 둘 이상의 연결을 사용하면 MSDTC가 항상 참여합니다. 하나의 데이터베이스조차도. 따라서이 방법을 통해 항상 하나의 연결을 유지하고 데이터베이스를 변경하는 것이 좋습니다.

도움이 되었기를 바랍니다.

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