개요
이 섹션에서는 제공자 를 새 버전으로 업그레이드 할 때 애플리케이션 에 적용해야 하는 필수 변경 사항을 확인할 수 있습니다.
업그레이드하기 전에 다음 작업을 수행하세요:
새 버전이 애플리케이션 연결되는 MongoDB Server 버전 및 애플리케이션 실행되는 .NET 버전과 호환되는지 확인합니다.이 정보는호환성 페이지를 참조하세요.
애플리케이션 에서 사용 중인 제공자 의 현재 버전과 업그레이드 예정 버전 간의 호환성이 손상되는 변경은 호환성이 손상되는 변경 사항 섹션에서 확인하세요.
호환성이 손상되는 변경
호환성이 손상되는 변경 은 제공자 의 특정 버전에서 시작하는 규칙 또는 동작의 수정입니다. 이러한 유형의 변경은 제공자 를 업그레이드하기 전에 해결하지 않으면 애플리케이션 이 제대로 작동하지 않을 수 있습니다.
이 섹션의 호환성이 손상되는 변경은 이를 도입한 제공자 버전별로 분류됩니다. 제공자 버전을 업그레이드할 때 현재 버전과 업그레이드 버전 간의 호환성이 손상되는 변경을 모두 주소 합니다. 예를 예시 제공자 를 v8.0 에서 v8.5 로 업그레이드하는 경우 v8.0 이후 버전의 모든 호환성이 손상되는 변경을 주소 합니다. v8.5 에 나열된 모든 항목을 포함합니다.
버전 9.0.0 호환성이 손상되는 변경
EF Core Provider 버전 9.0.0 에는 EF Core Provider 버전 8.3.0 과 동일한 호환성이 손상되는 변경이 포함됩니다.
버전 9.0.0 의 호환성이 손상되는 변경과 이를 주소 방법에 대한 자세한 내용은 버전 8.30.0 호환성이 손상되는 변경 섹션을 참조하세요.
버전 8.30.0 호환성이 손상되는 변경
EF Core Provider 버전 8.3.0 에는 대체 BSON 표현으로 구성된 null 허용 속성의 처리를 수정하는 호환성이 손상되는 변경 도입되었습니다. 이전 버전에서는 [BsonRepresentation]
속성 또는 HasBsonRepresentation()
fluent API 로 설정하다 구성이 적용되지 않았습니다.
다음 두 가지 방법 중 하나로 이 불일치를 주소 위한 조치 취할 수 있습니다.
대체 BSON 표현을 사용하는 것이 중요하지 않은 경우, 애플리케이션이 시작되기 전에 애플리케이션 에서 구성을 제거 .
또는 영향을 받는 요소를 새 표현으로 업데이트 할 수 있습니다. 업그레이드 프로세스 의 일환으로, 영향을 받는 각 MongoDB 컬렉션 에 대해
updateMany
메서드를 사용하여$convert
작업을 통해 영향을 받는 null 허용 속성 또는 요소를 원하는 BSON 표현으로 다시 작성합니다.예시 들어
people
컬렉션 의dateOfBirth
요소를 다음 코드와 같이 BSONdate
에서 BSONint
로 변환할 수 있습니다.db.people.updateMany( { dateOfBirth: {$type: "date" } }, [ { $set: { dateOfBirth: { $convert: { input: "$dateOfBirth", to: "int", onNull: null } } } } ] )
버전 8.2.0 호환성이 손상되는 변경
EF Core Provider 버전 8.2.0 에는 호환성이 손상되는 변경이 직접 도입되지 않습니다. 그러나 기본 .NET/ C# 드라이버 에는 v3.0 출시하다, 애플리케이션 에 영향을 줄 수 있습니다. .NET/ C# 드라이버 v 의 호환성이 손상되는 변경에3.0 학습 3 0 보려면 버전 로 업그레이드를 참조하세요. .NET/ C# 드라이버 설명서의 가이드 를 참조하세요.
버전 8.1.0 호환성이 손상되는 변경
모든 변경 사항을 MongoDB 트랜잭션으로 실행 하도록 EF Core Provider를 업데이트했습니다. 애플리케이션 에서 v5.0 이전의 MongoDB Server 를 사용하는 경우, 또는 복제본 세트 에서 실행 되지 않는 경우 애플리케이션 을 다음과 같이 변경해야 합니다.
애플리케이션 이 v5.0 이전의 MongoDB Server 버전으로 구성된 경우, MongoDB Server v5.0 이상으로 업그레이드 해야 합니다.
애플리케이션 이 독립형 독립형 서버 단일 인스턴스 복제본 세트 로 재구성해야 서버 . 독립형 서버 를 재구성하는 방법에 학습 보려면 MongoDB Server 매뉴얼 의 독립형 자체 관리 mongod 를 복제본 세트로 변환 을 참조하세요.
애플리케이션 이 컨테이너 환경에서 실행되는 경우 단일 인스턴스 복제본 세트 컨테이너 가 있는 경우 해당 컨테이너로 전환합니다.
트랜잭션 중 스냅샷 문제를 방지하려면 컬렉션 이나 데이터베이스 암시적으로 생성하는 대신 애플리케이션 시작 중에
EnsureCreated()
또는EnsureCreatedAsync()
메서드를 호출합니다.참고
애플리케이션 이 공유 클러스터 에서 실행 경우 또는 메서드를 호출하면 오류가 발생합니다.
EnsureCreated()
EnsureCreatedAsync()
무료 및 공유 클러스터에서 실행 되는 애플리케이션은 이러한 메서드를 호출해서는 안 됩니다.트랜잭션의 낙관적 동시성 을 보장하지 않으려면 애플리케이션 설정 중에
DbContext
하위 클래스에Database.AutoTransactionBehavior = AutoTrasactionBehavior.Never
를 설정하여 자동 트랜잭션을 비활성화할 수 있습니다.기본값 GUID 저장 형식을
CSharpLegacy
바이너리 형식에서Standard
형식으로 변경했습니다. 데이터베이스 에Standard
형식이 아닌 기존 GUID가 포함된 경우Standard
형식으로 변환하는 것이 좋습니다.CamelCaseElementNameConvention
은 클래스 이름 대신 속성 이름을 기준으로 소유한 엔터티의 대소문자를 변환합니다. 애플리케이션 에서CamelCaseElementNameConvention
을 사용하는 경우 데이터의 대소문자가 변경될 수 있습니다.
이 버전의 호환성이 손상되는 변경에 대한 자세한 내용은 Github 제공자 리포지토리 의 호환성이 손상되는 변경 섹션을 참조하세요.