EFCore
-
[EFCore] Microsoft.Data.SqlClient.SqlException 오류 뜰 때.NET/개념 및 유용한 팁 2022. 1. 30. 11:48
개발 중인 프로젝트에서 아래와 같은 오류가 발생했다. Microsoft.Data.SqlClient.SqlException: 'A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.)’ 원인은 따로 설치했던 Microsoft.EntityFrameworkCore.SqlServer 패키지에서 참조하는 Microsoft.Data.SqlClient 에 호환되는 버전이 맞지 않으면 발생했던 문제이다. 따로 설치된 Microsoft.Data.SqlClient ..
-
[EntityFramework Core] 간단히 알아본 Insert & Update 퍼포먼스 성능비교.NET/개념 및 유용한 팁 2021. 5. 30. 21:48
EntityFramework Core는 Microsoft에서 관리하는 오픈소스 ORM 라이브러리이다. ORM이 없기 전, 과거(라곤 하지만 현재도 유지되고 있다.)에는 쿼리 문자열을 작성하여 조회한 뒤, DataTable로 결과를 받아 처리하는 방식을 사용했었다. 모든 결과를 DataTable로 받기 때문에, 로직이 조금만 복잡해져도, 해당 DataTable이 가리키는 테이블이 무엇이고 어떤 필드가 어떤 유형(type)인지 제대로 파악하기 어려웠었다. EntityFramework 는 시스템이 사용할 테이블을 클래스(Class) 모델로 생성하고, 모델 객체를 통해 데이터를 조작하기 때문에 소스로직이 복잡해지더라도 클래스유형을 통해 분석이 용이하다는 장점이 있다. 근데 써본사람들은 알겠지만, SQL쿼리보다 ..
-
[EntityFrameWork Core] The instance of entity type cannot be tracked 오류 발생시 해결방안.NET/개념 및 유용한 팁 2021. 3. 27. 13:52
개발 중 이런 오류가 발생했다. The instance of entity type 'masterTbl' cannot be tracked because another instance with the same key value for {'idx', 'seq'} is already being tracked. When attaching existing entities, ensure that only one entity instance with a given key value is attached. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the conflicting key values. EFCore에서 검색한 객체를 T..
-
[EntityFramework Core] dbContext 여러 번 사용시 유의사항 (feat. Dbset 프로퍼티 데이터 불일치 현상).NET/개념 및 유용한 팁 2021. 3. 6. 11:52
회사에서 솔루션 개발중 겪은 뻘짓이 있어 기록한다. 현재 메일발송 서비스를 개발중에 있는데, 기존 DB와 신규 서비스의 DB 구조가 달라 호환을 위해 완료된 데이터를 기존 DB에도 입력하는 기능을 구현했다. 신규 DB에서 완료된 조건에 일치하는 데이터만 Where() 함수를 통해 가져와서 기존 DB에 Insert하는 작업인데, 조건에 부합되는 항목들을 Insert 하려니 "발송대기" 상태인 초기값으로 나온다. Worker Service Task 를 여러 개 사용하는 구조인데, Task는 각각 역할이 정해져있으며, ConcurrentQueue를 통해 데이터를 단방향으로 처리하기 때문에 스레드에 의한 데이터 불일치 현상이 일어나는 구조는 아니다. 설명이 어려우니 재현을 위해 소스코드를 준비해보겠다. .NET..
-
[EntityFramework Core] Worker 서비스에 DBContext DI 설정에 의한 System.AggregateException 오류 발생시 처리.NET/개념 및 유용한 팁 2021. 2. 18. 22:38
Worker 서비스 개발 중 아래와 같은 오류를 접하였다. System.AggregateException: 'Error while validating the service descript(Error while validating the service descriptor 'ServiceType: Microsoft.Extensions.Hosting.IHostedService Lifetime: Singleton ImplementationType: Cannot consume scoped service ASP.NET Core에선 나오지 않았던 오류인데 대충 해석하면 Singleton lifecycle 기반으로 동작하는 BackgroundService Worker에 Scoped 으로 설정된 서비스는 의존성 주입(D..
-
[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을 찾아 설치했다. 그랬더니..