2012-04-24 4 views
0

데이터를 쓰는 것이 아니라 데이터를 읽는 Oracle 데이터 소스를 사용하고 있습니다. 이 아닌은 데이터베이스의 내용을 변경합니다.EF4 : 동일한 테이블을 두 번 사용합니다.

2 개의 테이블, 코스 테이블 및 메모 테이블의 시나리오를 상상해보십시오.

코스 테이블에는 메모 (메모) 테이블에 대한 링크가 2 개 있습니다.

그래서 ...

코스 테이블 CourseId PreCourseInformationMemo

을 SummaryNarrationMemoId

MemoToString 테이블 MemoId MemoData (이진)

그래서 물론 테이블이 조인 제목 메모 표는 두 가지 이유가 있습니다.

나는, 두 번 같은 테이블을 사용하여 기본으로 메모 테이블을 사용하고 PreCourseMemo 및 SummaryNarrationMemo을 만들기위한 EF 상속 경로를 내려다 보았다,하지만 빌드에 이러한 오류가 발생합니다 : I 추가 모델을 업데이트

을 모델에 대한 두 개의 테이블. TwoTablesInEF

오류 3005 : 613부터 시작하는 조각 조각 매핑시 문제 : Set MemoToStringTables의 모든 유형에 대한 매핑을 지정해야합니다. 키 (PK)와 엔티티하지 않습니다 왕복 할 때 : 매핑 조각에 문제가 라인 (613)에서 시작 : 설정 MemoToStringTables의 모든 유형에 대한 매핑을 지정해야합니다 법인이

오류 3005가 [MyModel.MemoToStringTable]를 입력합니다. 키 (PK)와 엔티티하지 않습니다 왕복 할 때 : 매핑 조각에 문제가 라인 (613)에서 시작 : 설정 MemoToStringTables의 모든 유형에 대한 매핑을 지정해야합니다 법인이

오류 3005가 [MyModel.PreCourseMemo]를 입력합니다. 키 (PK)와 엔티티하지 않습니다 왕복 : 법인은 내가 데이터베이스에서 각 뷰를 만들 수 있습니다 알고 있지만 그것을 잘 느끼지 않는다 [MyModel.SummaryNarrationMemo]

을 입력합니다. :(모든 생각?

답변

0

내가 올바르게 문제를 이해하지 못한다면 상속을 메모 테이블에 매핑하려고하지만 메모 테이블에 EF가있는 경우이를 알리는 특수한 구분 기호 열이 있어야합니다 PreCourseMemo 또는 SummaryNarrationMemo이 있습니다. 해당 유형을 코스와 관련하여 그냥 다를 수는 없습니다.

+0

그 방법은 제가 시도한 방법 중 하나였습니다.이 테이블을 두 번 사용할 수있는 방법에 대한 조언을 듣고 있습니다. –

+0

수 없습니다. EF는 discriminator 열이나 테이블 분할로 TPH 상속을 사용하여 문제를 해결할 수 없다는 점을 제외하고 두 번 매핑 테이블을 허용하지 않습니다. –

관련 문제