2010-12-03 2 views
1

.Net 4.0 프레임 워크, C#, WPF, EF 4 및 FireBird를 사용하고 있습니다.WPF DataGrid에서 다른 데이터베이스의 필드를 표시하는 옵션?

하나의 FireBird 데이터베이스에있는 테이블에서 오는 데이터 그리드에 일부 데이터 (다중 필드 고객 번호)가 있습니다. 두 번째 FireBird 데이터베이스에서 필자는 그리드에 표시해야 할 추가 정보 (고객 번호와 고객 번호)를 포함하는 테이블을 가지고 있습니다. 테이블에는 수천 줄 이상의 행이 없습니다.

테이블이 동일한 데이터베이스에 있으면 사소한 것입니다. 그러나, 내가 사용하고있는 FireBird 데이터베이스가 데이터베이스 간 조인을 지원하지 않기 때문에, 나는 어플리케이션 레벨에서 데이터에 합류해야한다고 생각합니다.

현재 모눈의 키 값만 표시하고 있지만 두 번째 데이터베이스의 고객 이름도 표시해야합니다. DataFrid를 EF에 대한 LINQ 쿼리에 의해 생성 된 < 목록에 바인딩합니다.

두 번째 데이터베이스의 두 번째 EF 모델을 설정 한 다음 두 테이블의 내용을 필수 필드가있는 익명 클래스로 결합하도록 LINQ 쿼리를 수정한다고 생각했습니다.

다른 옵션을 사용할 수 있는지 잘 모르겠습니다.

또한 SQL 조인을 사용할 수 있도록 두 번째 데이터베이스에서 필요한 테이블을 첫 번째 데이터베이스로 밀어 넣어 문제를 제거 할 수도 있습니다. 이것은 시스템의 다른 곳에서해야 할 것이며 선호되는 해결책이 될 수도 있지만 다른 솔루션을 먼저 평가하지 않고 거기에 가고 싶지는 않습니다.

답변

0

두 번째 데이터베이스에 대해 두 번째 엔티티 모델을 설정했습니다. 엔티티 모델 인스턴스를 포함하고 클래스 간 상호 작용을 처리하도록 클래스를 설정합니다 (일부는 모델 클래스에 대한 부분 클래스의 속성으로 수행됩니다). 모델 뷰는 본질적으로 단일 데이터베이스로 데이터를 처리합니다. 우리가이 물건을 SQL 서버로 옮기고 이중 데이터베이스 쓰레기를 없애면 응용 프로그램 자체가 많이 변할 필요가 없습니다.

내가 지금까지 실행 한 유일한 문제는 하나의 쿼리에서 두 모델의 엔터티를 결합하면 오류가 발생하는 경우가 있으므로 linq 쿼리를 설정할 때 신중해야한다는 것입니다. 주위를 해결하기 어렵지 않습니다.

관련 문제