• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    해결됨

Table Splitting 부분에서 사소한 에러에 대해 질문이 있어요

21.02.04 22:07 작성 조회수 112

1

세번째 연동방법 Table Splitting에서 사소한 오류가 있어서.. 질문을 드려봐요

System.InvalidOperationException: ''EventItem' is mapped to the table 'Item' while 'Item' is mapped to the table 'Items'. Map all the entity types in the hierarchy to the same table or remove the discriminator and map all of them to different tables. See https://go.microsoft.com/fwlink/?linkid=2130430 for more information.'

이런 오류가 떴었는데,  처음에는 제가 모델링이 잘못됐나 하고 계속 분석을 해보고 수업자료를 받아서도 실행을 시켜봤는데.. 똑같은 에러가 계속 떴습니다.

builder.Entity<Item>().ToTable("Items");

builder.Entity<ItemDetail>().ToTable("Items");

그래서 이 코드를 지워봤는데 이때는 DB initialize가 정상적으로 작동을 하더라고요..  문득 에러 메시지를 다시 봤는데, 저희가 Items를 강제적으로 Item으로 바꾼게 기억이 나서, ToTable("Item")으로 바꿨더니 정상 작동이 됐습니다.

저 에러대로라면, 상속받은 EventItem은 TPH로 관리되는 item으로 매핑이 되는데, 우리가 Item으로 바꾼것을 FluentAPI로 다시 Items로 관리할려고 하니 불협화음으로 인한 에러일까요?

답변 2

·

답변을 작성해보세요.

1

제 환경에선 발생하지 않는데 혹시 실습을 EF Core 5.x 버전으로 하시는걸까요?
종종 버전에 따라 이전 버전에서는
통과되던 것들이 다음 버전에서는
더 엄격하게 판별되어서 걸리곤 합니다.

아무튼 문제 상황은 영어 에러 설명에서 매우 잘 해주고 있네요.

EventItem 자체는 Annotation인 Table("Item")에 의해 Item 테이블인데,
나중에 하는 Table Splitting 실습에서는

로 하면서 Items로 매핑하고 있으니 문제가 됩니다.
이미 하신것처럼 테이블 이름을 일치시켜주시면 될 것 같네요!

0

츠이노님의 프로필

츠이노

질문자

2021.02.05

감사합니다!