버전 3.0으로 업그레이드
이 페이지의 내용
개요
이 페이지에서는 .NET/ C# 드라이버 를 버전 3.0으로 업그레이드 할 때 애플리케이션 에 적용해야 할 변경 사항에 대해 설명합니다.
업그레이드 방법
이 페이지에는 .NET/ C# 드라이버 버전 3.0에 의해 도입된 잠재적인 호환성이 손상되는 변경이 나열되어 있습니다. .NET/ C# 드라이버 를 버전 3.0 으로 업그레이드 하려면 다음 단계를 따르세요.
호환성 페이지를 검토하여 새 운전자 버전이 애플리케이션 이 연결되는 MongoDB Server 버전 및 애플리케이션 이 실행되는 .NET 또는 .NET 프레임워크 버전과 호환되는지 확인합니다.
.NET/ C# 드라이버 의 2.x 버전을 사용하는 경우 v2.30 로 업그레이드 합니다. 이렇게 하려면 v2.x 업그레이드 가이드 를 따르세요.
버전 3.0 호환성이 손상되는 변경 섹션에 설명된 호환성이 손상되는 변경을 해결합니다.
예시
운전자 를 v2.14 에서 v3.0 로 업그레이드하는 경우 먼저 v2.x 업그레이드 가이드 를 참조하여 운전자 를 v2.30으로 업그레이드 합니다. 그런 다음 v3.0 에 대한 모든 호환성이 손상되는 변경을 주소 합니다.
버전 3.0 호환성이 손상되는 변경
운전자 는 MongoDB Server v3.6 및 이전 버전에 대한 지원 을 중단합니다. MongoDB Server 를 v4.0 이상으로 업그레이드 해야 합니다.
MongoDB Server 배포를 업그레이드하는 방법을 알아보려면 MongoDB Server 매뉴얼의 릴리스 노트를 참조합니다.
.NET/C# 드라이버 버전과 MongoDB Server 버전 간의 호환성에 대해 자세히 알아보려면 호환성 페이지를 방문하세요.
운전자 는 .NET Core 2.x 및 .NET Framework 4.6 에 대한 지원 을 중단합니다. .NET Core 3.x 이상 또는 .NET Framework 4.7.2 이상으로 업그레이드 해야 합니다.
.NET/ C# 운전자 버전과 .NET 버전 간의 호환성에 학습 보려면 호환성 페이지를 방문하세요.
운전자 는 레거시 v1.x를 구현하는 mongocsharpdriver NuGet 패키지 를 제거합니다. 운전자 버전 2.x의 API . v1.x를 사용하는 경우 API 를 사용하려면 새 API 마이그레이션 해야 합니다.
v2.30 에서 더 이상 사용되지 않는
MongoDB.Driver.Core
네임스페이스 의 클래스, 메서드 및 속성은internal
로 표시됩니다. 운전자 가 더 이상 사용되지 않는 클래스, 메서드 또는 속성 에 대한 대체품을 제공하는 경우 v2.30 의 컴파일러 메시지에 이를 표시합니다.이전 버전의 운전자 에서 더 이상 사용되지 않는
MongoDB.Bson
네임스페이스 의 메서드, 속성 및 생성자가 제거되었습니다. 운전자 가 더 이상 사용되지 않는 메서드, 속성 또는 생성자를 대체하는 기능을 제공하는 경우 v2.30 의 컴파일러 메시지에 이를 표시합니다.운전자 가
MONGODB-CR
인증 메커니즘 에 대한 지원 을 중단합니다. .NET/ C# 드라이버 에서 인증 을 구성하는 방법에 학습 보려면 인증 메커니즘을 참조하세요.이 운전자 는 대부분의 다른 LINQ 제공자가 사용하는 패턴 에 따라
IMongoQueryable
인터페이스를IQueryable
인터페이스로 대체합니다. 애플리케이션 에IMongoQueryable
에 대한 참조가 포함된 경우 이를IQueryable
로 바꿉니다.운전자 가
ClusterBuilder.ConfigureSdamLogging()
메서드를 제거합니다. 애플리케이션 에서 로깅을 구성하려면 로깅 가이드 를 참조하세요.LINQ2 제공자 가 이 버전의 운전자 에서 제거되었습니다. 모든 LINQ 쿼리에 LINQ3 를 사용해야 합니다.
클라이언트 사이드 프로젝션을 사용하는 쿼리는 기본값
ExpressionNotSupportedException
오류를 발생시킵니다. 클라이언트 사이드 프로젝션을 활성화 하려면TranslationOptions
객체 의EnableClientSideProjections
속성 을true
로 설정하다 합니다. 이TranslationOptions
객체 를AggregateOptions
또는FindOptions
객체 에 전달하여 단일 쿼리 에 대해 클라이언트 사이드 프로젝션을 활성화 하거나MongoClientSettings
객체 에 전달하여 애플리케이션 의 모든 쿼리에 대해 클라이언트 사이드 프로젝션을 활성화 있습니다.이전 버전의 .NET/ C# 드라이버 는 두 가지 GUID 표현 모드를 지원했습니다. 버전 3.0에서는
GuidRepresentationMode.V3
가 유일하게 지원되는 모드 입니다. 이 변경 사항은 운전자 에 다음과 같은 영향을 미칩니다.BsonBinaryData(Guid)
생성자가 제거되었습니다. GUID에서BsonBinaryData
객체 를 구성하려면BsonBinaryData.Create(Guid, GuidRepresentation)
생성자를 사용합니다.BsonBinaryData.GuidRepresentation
속성 이 제거되었습니다.4 하위 유형의
BsonBinaryData
객체에서만BsonBinaryData.ToGuid()
메서드를 호출할 수 있습니다. 객체 에 다른 하위 유형이 있는 경우BsonBinaryData.ToGuid(GuidRepresentation)
메서드를 호출하고 하위 유형을 지정해야 합니다.
앞의 변경 사항은 BSON 문서를 직접 직렬화 및 역직렬화하는 경우에만 애플리케이션 에 영향을 줍니다. MongoDB 문서를 POCO에만 매핑하는 경우
GuidRepresentationMode
는 애플리케이션 에 영향을 주지 않습니다..NET/ C# 드라이버 에서 GUID를 직렬화하는 방법에 학습 보려면 GUID 페이지를 참조하세요.
예외 클래스 및 관련 유형에는 더 이상
[Serializable]
속성이 포함되지 않으므로 더 이상 Microsoft 레거시 직렬화 API 지원 하지 않습니다. .NET/ C# 드라이버 를 사용하여 객체를 직렬화하는 방법을 학습 보려면 직렬화 가이드 를 참조하세요.TLS 1.0 및 1.1 은 더 이상 지원되지 않습니다. TLS 1.2 이상을 사용해야 합니다. .NET/ C# 드라이버 에서 TLS/SSL을 구성하는 방법에 학습 보려면 연결에서 TLS 활성화를 참조하세요.
기본값 운전자 는
Decimal128
및decimal
값을 BSONDecimal128
값으로 직렬화합니다. 이전 버전의 운전자 에서는 기본값 으로 운전자 가 이러한 값을 BSONstring
값으로 직렬화했습니다. v 에서decimal
또는Decimal128
값을 문자열로 string 3.0 직렬화하려면, 필드 에[BsonRepresentation(BsonType.String)]
속성을 적용 합니다.직렬화 중 BSON types 지정에 학습 보려면 POCO 페이지의 사용자 지정 직렬화 섹션을 참조하세요.
기본값 운전자 는
DateTimeOffset
값을 BSON 문서로 직렬화합니다. 이전 버전의 운전자 에서는 기본값 으로 운전자 가 이러한 값을 BSON 배열로 직렬화했습니다. v3.0 에서DateTimeOffset
값을 배열 로 직렬화하려면 다음을 수행합니다. 필드 에[BsonRepresentation(BsonType.Array)]
속성을 적용 합니다.기본값 JSON JSON 출력 모드 는 Relaxed Extended JSON JSON 으로, BSON string JSON BSON 문서를 설명하는 JSON 표준을 기반으로 하는 문자열 형식입니다. 완화된 확장 JSON 은 유형 보존을 희생하는 대신 가독성과 상호 운용성을 강조합니다.
다른 JSON 출력 모드 를 사용하려면 새
JsonWriterSettings
객체 를 만듭니다. 이 객체 의OutputMode
속성 을JsonOutputMode
열거형 의 값으로 설정한 다음 문서 를 직렬화할 때 객체 를ToJson()
메서드에 전달합니다. 다음 코드 예시 에서는 BSON 문서 를 Strict JSON 으로 직렬화하는 방법을 보여줍니다.// Configure JsonWriterSettings var jsonWriterSettings = new JsonWriterSettings { OutputMode = JsonOutputMode.Strict }; // Serialize the document to JSON using the configured settings var json = document.ToJson(jsonWriterSettings); MongoClient
생성자는 배열 대신 하나의Credential
객체 만 허용합니다.AWS( Amazon Web Services ) 인증 을 사용하려면
MongoDB.Driver.Authentication.AWS
프로젝트 에 패키지 를 추가하고 애플리케이션의 부트스트랩 코드에 인증 제공자 를 등록해야 합니다. .NET/ C# 드라이버 에서 AWS 인증 을 사용하는 방법에 학습 보려면 AWS ID 및 액세스 관리를 참조하세요.사용 중 암호화 를 사용하려면 프로젝트 에
MongoDB.Driver.Encryption
패키지 를 추가하고 애플리케이션의 부트스트랩 코드에 암호화 메커니즘을 등록해야 합니다. .NET/ C# 드라이버 에서 사용 중 암호화 를 사용하는 방법에 학습 보려면 MongoDB Server 매뉴얼에서 사용 중 사용 중 암호화 를 참조하세요.부동 소수점
Infinity
또는NaN
값을 정수 표현으로 직렬화하거나 역직렬화하려고 하면 운전자 에서OverflowException
이(가) 발생합니다. 부동 소수점 및 값에 학습 보려면Infinity
NaN
Double.NaN, Double.PositiveInfinity 및 Double.NegativeInfinity를 참조하세요. MSDN에서.운전자 에는
BsonValue
클래스에 대한 다음과 같은 변경 사항이 포함되어 있습니다.AsLocalTime
및AsUniversalTime
속성에서[Obsolete]
속성을 제거합니다.AsNullableLocalTime 및 AsNullableUniversalTime 속성을 추가합니다.
AsDateTime
속성 제거합니다. 대신 AsUniversalTime 속성 을 사용하세요.AsNullableDateTime
속성 제거합니다. 대신 AsNullableUniversalTime 속성 을 사용하세요.
운전자 가 에서개별 클러스터 이벤트를
MongoClient.Cluster
제거합니다. 클러스터 이벤트를 수신하려면 ClusterBuilder.Subscribe()를 사용합니다.