한 데이터베이스에서 다른 데이터베이스로 데이터를 변환하고 마이그레이션하는 Windows 서비스를 만드는 작업이 수행되었습니다. 내가 당기는 데이터베이스는 하위 부서 중 한 부서에서 개발 한 것으로, 해당 데이터베이스의 구조에 대해서는 말하지 않습니다.Entity Framework에서 복합 키의 일부를 무시하는 방법
내 문제는 내가 당기는 데이터베이스가 작동하는데 문제가있는 몇 가지 본질적인 결함이 있다는 것입니다. 가장 큰 것 중 하나는 여러 테이블에서 기본 키가 복합 기본 키로 설정된다는 것입니다. 이는 큰 문제는 아니지만 연결된 테이블은 복합 키의 일부만 가지고 있습니다. 참조 할 키.
예를 들어 '사람'은 ID와 성을 복합 키로 사용합니다. ID는 대리 자동 증분 정수 키이고 성은 varchar입니다. ID 열만 있으면 사람을 고유하게 식별 할 수 있지만 어떤 이유 때문에 성 키를 합성 키에 포함 시켰습니다. 'Project'는 'People'을 참조하여 프로젝트가 할당 된 사람을 나타냅니다.하지만 'Project'에는 성이 아니라 'PersonID'만 있습니다.
저는 데이터베이스와 액세스 프론트 엔드를보고있었습니다. 실제로 두 관계가 정의되어 있지 않습니다 ... 프런트 엔드를 통해 논리적으로 유지 관리되고 있습니다.
그래서 내가 참여하는 테이블에 다른 테이블의 복합 기본 키에 지정된대로 필요한 모든 열이없는 경우 어떻게 내 탐색 속성을 추가 할 수 있습니까? 기술적으로 ID 번호가 있습니다. 논리적으로 연관성을 만드는 데 필요한 것은 모두 있지만 엔티티 프레임 워크에서는 모든 복합 키 열이 참조 제약 조건에 매핑되어야합니다.
내비게이션 속성을 무시하고 갭을 메우기 위해 로직을 추가하도록 할 수는 있지만 지연로드는 단계적으로 쿼리를 작성해야한다는 것을 의미합니다.
복합 키가 테이블의 ID에 의미있는 공헌을하지 않는 경우 복합 키의 열을 무시할 수있는 방법이 있습니까?
편집
나는 결코 자신의 데이터베이스에 기록되지 않습니다 것 또한주의해야한다. 나는 그들의 데이터에 대해서만 질의를 할 것입니다. 연결하려는 사용자 계정에만 선택 권한이 부여되었습니다.