EF Code First를 사용하여 기존 DB2 데이터베이스에 매핑합니다. 이것은 일대 다 관계이므로 불행히도 뷰를 쉽게 만들거나 스키마를 변경할 수 없습니다.EF 코드 첫 번째 외래 키 문제
부모 테이블의 스키마 다음 키가 있습니다
Type (char(1))
ServiceDate (datetime)
FormNumber (varchar(8))
자식 테이블 (세부 사항)이 다음 키
을ServiceDate (datetime) (also a foreign key to ServiceDate on the parent table)
FormNumber (varchar(8)) (also a foreign key to ServiceDate on the parent table)
SpecificServiceDate (datetime)
LineNumber (varchar(8))
나는를 만들 유창한 매핑을 사용하고 싶습니다
관계. 내가하는 경우 :
.HasMany(e => e.Details).HasForeignKey(e => new {e.ServiceDate, e.FormNumber});
... 키가 기본 키와 일치하지 않는다는 오류가 발생합니다. 이것을 설정하는 방법에 대한 아이디어? 감사.
편집
OK, EF는 기본적으로이 기능을 지원하지 않습니다. 데이터를 지연로드하는 방법이 있습니까?
이것은 차이가 나는 경우 읽기 전용입니다.
나는 그것이 어떻게 작동하는지 잘 모르겠습니다. FormNumber = 1, ServiceDate = 1/1/2013, Type = A 및 FormNumber = 1, ServiceDate = 1/1/2013, Type = B 일 경우 어떻게됩니까? 세부 정보에서 어떤 레코드가 상위 레코드인지 고유하게 선택할 수있는 방법이 없습니다. DB/2가 유일하게 식별 할 수 없을 때 이런 종류의 외래 키 관계를 허용 할 수는 없다고 생각합니다. –
이것은 이전 AS400 시스템에서 벗어 났으며 기본 테이블은 실제로 UNION 뷰이고 외래 키는 다른 것보다 규칙이 더 많습니다. 재미 없어. :-( – bryanjonker
EF는 뷰를 매우 잘 지원하지 않습니다. 특히, EF는 복합 기본 키의 일부로 nullable이 아닌 모든 필드를 처리합니다. 여기서는 관계를 작성할 수 없을 것입니다. –