Programing

Entity Framework 4.0 : 오류 113 : 다중성이 역할에서 유효하지 않습니다.

crosscheck 2020. 11. 27. 07:48
반응형

Entity Framework 4.0 : 오류 113 : 다중성이 역할에서 유효하지 않습니다.


내 데이터베이스에 새 테이블을 넣었고 외래 키 관계가있는 4 개의 테이블이 있습니다. 4 개를 모두 같은 방식으로 구성했다고 생각했지만이 오류가 발생합니다.

오류 15 오류 113 : 'FK_OtherLeaves_ReportCellImages'관계의 'ReportCellImage'역할에서 다중성이 유효하지 않습니다. 종속 역할의 모든 속성은 Null을 허용하므로 주 역할의 다중성은 '0..1'이어야합니다.

그래서 내 테이블을 단순화합니다.

ReportCellImage 테이블에는 기본 키와 정수에있는 ReportCellImageId 필드가 있습니다.

OtherLeave 테이블에는 ReportCellImageId 필드가 기본값이 4 인 nullable 외래 키로 포함됩니다.

다른 테이블은 비슷하며 모두 ReportCellImage 테이블과 조인하도록 구성된 외래 키가 있습니다.

이것은 최근 변경 사항이므로 데이터베이스에서 edmx 파일을 업데이트 할 때이 오류가 발생하는 이유와 해결 방법은 무엇입니까?


FK가 Null을 허용하는 경우 주요 엔터티의 다중성은 0..1이어야합니다. FK에 Null을 할당 할 수 있으므로 기본값은 여기에서 역할이 없습니다. 따라서 모든 종속 엔티티는 주 엔티티와 0..1-* 관계에 있어야합니다.


방금 같은 메시지를 받았는데 DB에서 수정 한 테이블이 메시지를받은 테이블과 다르기 때문에 당혹 스러웠습니다.

다중성을 0..1에서 다로 변경하려고 시도했지만 "Run Custom Tool"명령, 정리 및 재 구축 후에도 메시지가 지속되었습니다.

EF가 불평하는 관계를 삭제하고 DB에서 모델을 업데이트하여 해결됨


EDX 다이어그램에서 관계를 마우스 오른쪽 버튼으로 클릭하십시오. 적절하게 END1 Multiplicity를 0..1 (Yero 또는 YOURTABLENAME 중 하나)로 변경합니다.


모델에서 업데이트 된 테이블을 삭제 한 다음 데이터베이스에서 모델 업데이트에서 다시 추가하고 도움이되었습니다.


.edmx 파일을 만들기 위해 데이터베이스 첫 번째 접근 방식을 사용하고 있습니다. 이 문제가 발생했을 때 위의 몇 가지 제안을 시도했지만 여전히 오류가 발생하여 .edmx 파일을 삭제하고 업데이트 된 데이터베이스에서 전체 파일을 새로 고쳤습니다.

기존 데이터베이스를 업데이트 한 후 때때로 EF가 혼동되는 경우가 있으며 근본 원인을 찾는 것이 이상적이지만 작업 환경 (예 : 내)에서 작업하는 데 1 시간을 소비하는 것이 불가능할 수 있습니다.

우리의 DB는 새롭고 작기 때문에 파일 새로 고침이 쉽고 오래 걸리지 않습니다.
문제가 해결되었습니다.. . .


Multiplicity = "1"을 Multiplicity = "0..1"로 변경

 <Association Name="FK_O_Personel_PBS_AtanmaSekilleri">
          <End Type="eKampus_RTEUModel.PBS_AtanmaSekilleri" Role="PBS_AtanmaSekilleri" Multiplicity="0..1" />
          <End Type="eKampus_RTEUModel.O_Personel" Role="O_Personel" Multiplicity="*" />
          <ReferentialConstraint>
            <Principal Role="PBS_AtanmaSekilleri">
              <PropertyRef Name="ID" />
            </Principal>
            <Dependent Role="O_Personel">
              <PropertyRef Name="atamaSekliID" />
            </Dependent>
          </ReferentialConstraint>
        </Association>

새 테이블을 추가 한 후에도 동일한 문제가 발생하여 관계 삭제를 포함하여 여기에서 모든 솔루션을 시도했지만 작동하지 않았습니다. 나를 위해 일한 해결책은 실제로 모델을 완전히 삭제하고 새 모델을 만드는 것이 었습니다. 새 EF가 동일한 이름을 사용할 수 있도록 web.config에서 연결 문자열을 삭제하는 것을 잊지 마십시오.


엔터티 클래스에서 엔터티 참조를 제거한 후 데이터베이스에서 수동으로 참조를 제거한 다음 단계적으로 되돌려 놓은 후 작업을 마친 후 깨달은 문제를 해결하려면 다음 컨텍스트에서 WithOptional을 WithRequired로 바꾸는 것이 좋습니다. 먼저 필드를 nullable에서 non nullable로 변경했습니다.

protected override void OnModelCreating(DbModelBuilder modelBuilder)


이 오류는 주로 EF에 추가 한 후 테이블 정의가 변경되었을 수 있기 때문에 발생합니다. 해결책은 EF 모델에서 삭제하고 데이터베이스에서 모델 업데이트를 사용하여 다시 추가하는 것입니다.

참고 URL : https://stackoverflow.com/questions/9292738/entity-framework-4-0-error-113-multiplicity-is-not-valid-in-role

반응형