2012-06-08 2 views
0

그래서 두 개의 관련 테이블, 주문 및 주문 정보 시스템이 있습니다. 주문 테이블은 Id를 기본 키로, 고객 이름을 스칼라 속성으로, orderextra_Id를 외래 키로 사용합니다. orderextra에는 기본 키로 ID가 있고 extrainfo라는 varchar라는 두 가지 속성 만 있습니다.하나의 엔티티 유형에 두 개의 테이블 결합

이제는 EF 4.0 Recipes를 읽기 시작했습니다. 처음에는 두 테이블을 하나의 엔티티로 결합하는 방법을 보여주었습니다 (기본적으로 extrainfo를 주문 엔티티에 표시하고 orderextra를 엔티티로 사용). 그러나이 예에서 두 테이블 모두 동일한 PK를 공유합니다. 별도의 PK가 있고 테이블 중 하나가 다른 PK를 참조 할 때이 작업을 수행 할 수 있습니까? 두 테이블에서 원하는 항목을 추가, 엔티티의 하나에 디자이너에서

modelBuilder.Entity<Order>() 
    .Map(m => 
    { 
     m.Properties(t => new { /* order columns */ }); 
     m.ToTable("order"); 
    }) 
    .Map(m => 
    { 
     m.Properties(t => new { /* orderextra columns */ }); 
     m.ToTable("orderextra"); 
    }); 
+0

이 결합 된 엔티티에 쓸 필요가없고 백엔드가 SQL 인 경우 SQL로보기를 작성하고보기를 엔티티에 추가 할 수 있습니다. – JamieSee

+0

글을 쓰지 않아도된다면 성공할 수 있지만, 그렇지 않습니다. – bobblez

답변

0

이보십시오.

거기에서 '테이블 ->'XXX 테이블에 매핑 '을 볼 수 있습니다. 그 아래에서 다른 테이블을 추가하고 원하는 방식으로 둘 이상의 테이블을 가질 수 있도록 열을 매핑 할 수 있습니다.

+0

아, 좀 더 구체적이어야한다고 생각합니다. 나는 디자이너에게서 이것을 성취 할 방법을 찾고있다. 나는 심지어 당신이 말하는이 모델 작성자가 뭔지도 모르겠다 :) 대답에 대한 감사! – bobblez

+0

@bobblez'modelBuilder'는 코드 우선 유창 API의 일부입니다. 디자이너를 사용하는 경우 이렇게하면 도움이되지 않습니다. –

+0

@bobblez 머리 꼭대기에있는 모든 파일의 이름을 모르지만, GUI에서이 파일을 추상화하는 중입니다. 데이비드는 수정에 대해 이야기하고 있습니다. 나는 그다지 혼란스러워하지는 않았지만, 여러 이유들로 인해 (어떤 이유로 든 번역 기능 중 하나가 DB 수정 후 두 번째 필수 매개 변수를 무작위로 획득했습니다). 나는 그것에서 벗어나지 않을 것이다, 당신은 어느 시점에서 그것을 만져야 만 할 것이고 그것은 꽤 솔직하다. – evanmcdonnal

0

을하고, 매핑 정보 창으로 이동 :

+0

그래,이게 내가 시도한 것이지만 컨텍스트를 반복 할 때. 주문 - 콜렉션, 나는 항상 엔티티가있다. 예외 (내가 시도한 것에 따라 이 변경됨). 문제는 Id 필드와 관련이있는 것으로 보입니다. 특히, orderextra-table의 ID에 매핑 할 대상은 무엇입니까? EF는 매핑하려고하는 모든 주요 속성을 매핑해야하는 것에 대해 불평하는 것으로 보입니다. – bobblez

관련 문제