-
[EntityFramework Core] The database provider attempted to register an implementation of the 'IRelationalTypeMappingSource' service 오류가 나올때 확인사항.NET/개념 및 유용한 팁 2021. 2. 18. 21:40반응형
현재 개발중인 닷넷 코어기반 Worker 서비스에서 MySQL을 이용하기위해 EntityFrameworkCore + Pomelo.EntityFramework.MySql 조합으로 Nuget 패키지를 구성했다.
EFCorePowerTools를 이용해서 자동 생성해서 구축했기 때문에 큰 문제가 없을 줄 알았는데, 아래와 같은 오류가 표시되었다.
Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. 지정된 파일을 찾을 수 없습니다.
dll을 찾을 수 없다는 오류였기 때문에 Nuget 패키지에서 해당 DLL을 찾아 설치했다. 그랬더니 이번엔 아래와 같은 오류가 나왔다.
System.InvalidOperationException: 'The database provider attempted to register an implementation of the 'IRelationalTypeMappingSource' service. This is not a service defined by Entity Framework and as such must be registered as a provider-specific service using the 'TryAddProviderSpecificServices' method.'
원인을 확인하던 중 깃허브에서 아래와 같은 답변을 확인할 수 있었다.
github.com/npgsql/efcore.pg/issues/1441
해석하면 EFCore 버전과 서드파티 패키지가 참조하는 EFCore의 버전이 일치해야 한다는 뜻이다. 현재 개발중인 서비스가 MySQL, MSSQL, InMemory 3가지 구현체를 쓰다보니 버전이 꼬였던 것이다.
Pomelo MySQL은 현재 포스트를 쓰는 2021년 2월 시점으로 EntityFrameworkCore 3.1.8을 참조하도록 구성되어 있었기 때문에 다른 버전들도 모두 3.1.8에 맞춰 해결했다.
(근데 이상하다... 처음에 3.1.12 로 설정했었을 때도 안되었던 것 같은데. 3.1.8로 맞춘 후 다시 3.1.12로 바꿔보니 잘된다.)
반응형'.NET > 개념 및 유용한 팁' 카테고리의 다른 글
[EntityFramework Core] dbContext 여러 번 사용시 유의사항 (feat. Dbset 프로퍼티 데이터 불일치 현상) (0) 2021.03.06 [EntityFramework Core] Worker 서비스에 DBContext DI 설정에 의한 System.AggregateException 오류 발생시 처리 (0) 2021.02.18 [.NET] List 배열을 Random 정렬하는 간단한 소스코드 예시 (0) 2021.02.12 [.NET] AppContext.BaseDirectory 와 Environment.CurrentDirectory 위치 차이점 및 유의사항 (0) 2021.02.01 [.NET] 간략한 메일(Mail)발송 프로그램 예제 (0) 2021.01.19