8

엔티티 프레임 워크를 사용하고 있는데 이상한 빌드 오류가 발생했습니다.Entity Framework의 조각 매핑에 문제가 있습니다.

나는 포럼을 만들고 사람들이 서로를 좋아하지 않을 때 포럼에서 "무시"를위한 데이터베이스를 설정합니다. 테이블에는 두 개의 열이 있으며 함께 기본 키입니다.

PK InitiatingUser 
PK IgnoredUser 

EF 내가이 오류를 얻을이 테이블에 매핑하는 경우 :

오류 7 오류 3034 : 아마도 서로 다른 키를 사용하여 두 개체가 동일한 행에 매핑됩니다 라인 1467, 1477에서 시작하는 매핑 조각에 문제가 있습니다. 이 두 매핑 조각이 AssociationSet의 양쪽 끝을 해당 열에 매핑하는지 확인하십시오.

XML 편집기에서 edmx를 열고 문제가있는 행으로 이동했습니다.

  <MappingFragment StoreEntitySet="Ignores"> 
      <ScalarProperty Name="IgnoredUser" ColumnName="IgnoredUser" /> 
      <ScalarProperty Name="InitiatingUser" ColumnName="InitiatingUser" /> 
      </MappingFragment> 

저는 EF를 처음 사용하면서 어떤 일이 벌어지고 있는지 또는 그 문제가 무엇인지 이해하지 못합니다.

도움을 주시면 감사하겠습니다. 사용자 테이블의 기본 키 (사용자 이름)에 모두 시작 사용자 무시 사용자를 매핑하는 외래 키를 가지고하는 데 사용 무시 사이

편집 관계. 그것이 내가 처음에 EF를이 테이블에 매핑 한 방법이었습니다. 나는 FK를 삭제 한 후 FK가 도움이 될지 알지 못했다.

+1

DB의 관계는 어떻게 생겼습니까? – bzlm

+0

관계에 대한 편집을 참조하십시오. – Chev

답변

5

여기서 무엇이 잘못 되었는가는 알 수 없지만 ORM에서 테이블을 삭제하고 DB에서 두 개의 기본 키 대신 실제 ID 열을 사용하여 다시 작성했습니다. 필자는 테이블을 다시 매핑하여 컴파일하고 모든 것이 잘되었습니다. 내가 가지고있는 방식대로하는 것이 편리했을 지 모르지만 오.

누군가 통찰력이 있다면 알려주세요. 차라리 다른 사람의 대답을 받아 들일 것입니다.

+0

통찰력 : 모든 것을 다시 맹목적으로 쾅쾅 치는 대신 모델에서 변경 한 내용을 유지하려고합니다. 그래도 당신의 대답이 내 문제를 해결했습니다. – gbjbaanb

23

이것은 엔티티 모델에 다 대다 조인 테이블을 포함하거나 EF가 생각하는 테이블이 자체 소유 키가 없지만 신원은 두 개 이상의 외래 키로 구성됩니다).

따라서, 예를 들어, 다음과 같은 테이블이 있다고 가정 해 봅시다 :

  • 사람
  • 주소
  • PersonAddress (있는 경우에만 PersonID 및 AddressID) 엔터티 모델에서

을, 사람과 주소 만 추가해야합니다. PersonAddress를 추가하면 EF가 오류를 발생시킵니다. this MSDN Q&A에 따르면 EF는 조인 테이블을 자동으로 고려합니다.

+1

정확히 내가 모델에 문제가 있었는지, 데이터베이스에서 잊어 버린 모든 테이블을 맹목적으로 추가했습니다. M : N 관계는 EF에서 처리합니다. –

+0

귀하의 답변이 저를 저장했습니다. 두번. – tia