2

시나리오는 기본적으로 내 프로그램에서 사용할 도메인 모델이 필요하지만 다른 스키마를 포함하는 다른 공급 업체 데이터베이스와 연결하는 것입니다.엔티티 프레임 워크를 사용하여 스키마 데이터베이스를 변경하는 방법

xml SSDL 파일을 수동으로 변경할 수 있습니까? 어쩌면 각 벤더 데이터베이스에 대한 데이터 엔티티 모델을 만들고 앱 구성에서 선택할 모듈과 같은 것을 만드는 것이 더 좋을까요? 다시 말하지만, 관리 할 때마다 앱 내에서 특정 pocos가 필요하며 매번 다를 수는 없습니다. 이것은 나를 EF 엔티티에서 my poco 객체로 속성을 복사하는 레이어를 만드는 것으로 가능한 해결책을 생각하게 만듭니다.

귀하의 의견은 소중합니다.

이상한 요구 사항입니다 고맙습니다

답변

2

. 예상되는 데이터 구조에서 작동해야하는 응용 프로그램을 구축하고 있지만 동시에 배포 할 때마다 저장된 데이터 구조자를 다르게해야할까요?

리소스 대신 여러 버전의 SSDL and load MSL, SSDL and CSDL from files을 만들 수 있지만 SSDL에서 테이블 이름이나 열 이름을 변경하는 경우 SSDL에 정의 된 테이블과 CSDL에 정의 된 항목 간의 매핑을 설명하므로 MSL도 수정해야합니다. 클라이언트 당 하나의 EDMX (클라이언트 당 새로운 CSDL)를 사용하거나 SSDL 및 MSL의 XML을 수동으로 수정해야하기 때문에 클라이언트 당이 작업을 수행하면 유지 관리가 어려워 질 수 있습니다. POCO를 사용하는 경우 여러 매핑에 대해 걱정할 필요가 없습니다. CSDL에서 엔티티와 열에 대해 동일한 이름을 사용하기 때문에 작동합니다.

모듈이 클라이언트의 데이터베이스에서 사용할 필요가없는 테이블을 필요로하는 경우 관련 기능을 숨기거나 (일부 기능이 실수로 사용되면 예외를 throw하는) 구성을 추가하기 만하면됩니다.하지만 SSDL은 여전히 테이블이 있습니다. 그렇지 않으면 모듈이나 클라이언트별로 여러 개의 EDMX를 만들어야합니다.

응용 프로그램을 모듈로 분리하면 디자인에 또 다른 영향이 있습니다. 단일 EDMX를 사용하는 경우, 일부 모듈 만 설치하여 손상 될 수있는 엔티티 사이에 탐색 속성이 없음을 보장해야합니다. => 선택적 모듈의 엔티티에 탐색 속성을 사용할 수 없습니다. 모듈 당 EDMX를 생성하면 일부 재사용 된 공유 EDMX를 제외하고 모듈 간 탐색 속성을 사용할 수 없습니다.

응용 프로그램 배포 절차 중 응용 프로그램의 업데이트 가능한보기를 만들어야한다고 생각합니다. 이렇게하면 알 수없는 스키마가 예상되는 스키마와 매핑되어 여전히 단일 SSDL을 사용하게됩니다. 나는 그것을 시도하지 않았지만 그것이 효과가 있기를 바란다.

+0

답장을 위해 고맙습니다. 저는 클라이언트 당 EDMX 모듈을 사용하는 시나리오를 더 잘 유지할 것이며 모든 모델에 동일한 POCO 어셈블리를 적용 할 수 있다고 생각합니다! 이것이 아직 일할 수 있다면 몰라! 가장 큰 문제는 내비게이션 속성이있는 것입니다. 나는 그 사건들을 연구 할 것이다. –

관련 문제