バージョン3.0にアップグレード
Overview
このページでは、 .NET/ C#ドライバーをバージョン3.0にアップグレードするときにアプリケーションに加える必要がある変更について説明します。
アップグレード方法
このページでは、 .NET/ C#ドライバー バージョン3.0によって導入される可能性のある重大な変更をリストします。 .NET/ C#ドライバーをバージョン3.0にアップグレードするには、次の手順に従います。
[ 互換性] ページを確認して、新しいドライバー バージョンが、アプリケーションが接続するMongoDB Serverのバージョン およびアプリケーションが実行される.NETまたは.NETフレームワークのバージョンと互換性があることを確認します。
.NET/ C#ドライバーの2 .x バージョンを使用している場合は、 v 2.30にアップグレードします。これを行うには、 v 2 .x アップグレードガイドに従います。
バージョン3.0の重大な変更セクションで説明されている重大な変更に対処します。
例
ドライバーを v 2.14から v 3.0 800} にアップグレードする場合は、まず v 2 .x アップグレードガイドを使用してドライバーを v 2.30にアップグレードします。次に、v 3.0のすべての重大な変更に対処します。
バージョン3.0 重大な変更
ドライバーはMongoDB Server v 3.6以前のサポートを削除します。 MongoDB Serverは v 4.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のバージョンの互換性の詳細については、互換性ページをご覧ください。
ドライバーは mongos シャード ドライバーを削除します NuGetパッケージ。ドライバー バージョン1 2.x にレガシーv .x APIを実装します。 v1 .x APIを使用している場合は、新しいAPIに移行する必要があります。
v 2.30で非推奨となった
MongoDB.Driver.Core
名前空間内のクラス、メソッド、プロパティはinternal
とマークされています。ドライバーが非推奨のクラス、メソッド、またはプロパティの代替を提供する場合、 v 2.30のコンパイラー メッセージにそれが表示されます。ドライバーの以前のバージョンで非推奨だった
MongoDB.Bson
名前空間内のメソッド、プロパティ、コンストラクターが削除されました。ドライバーが非推奨のメソッド、プロパティ、またはコンストラクターの代替を提供する場合、v 2.30のコンパイラー メッセージにそれが表示されます。ドライバーは
MONGODB-CR
認証メカニズムのサポートを削除します。 .NET/ C#ドライバーで認証を構成する方法の詳細については、「認証メカニズム 」を参照してください。ドライバーは、他のほとんどの LINQ プロバイダーで使用されるパターンに従って、
IMongoQueryable
インターフェースをIQueryable
インターフェースに置き換えます。アプリケーションにIMongoQueryable
への参照が含まれている場合は、IQueryable
に置き換えます。ドライバーは
ClusterBuilder.ConfigureSdamLogging()
メソッドを削除します。アプリケーションでログを構成するには 、「ログガイド」を参照してください。LINQ 2プロバイダーはこのバージョンのドライバーから削除されました。すべての LINQ クエリに LINQ 3を使用する必要があります。
.NET/ C#ドライバーの以前のバージョンでは、2 つの GUID 表現モードがサポートされていました。バージョン3.0では、サポートされているモードは
GuidRepresentationMode.V3
のみです。この変更は、ドライバーに次の影響を与えます。BsonBinaryData(Guid)
コンストラクターが削除されました。 GUID からBsonBinaryData
オブジェクトを構築するには、BsonBinaryData.Create(Guid, GuidRepresentation)
コンストラクタを使用します。BsonBinaryData.GuidRepresentation
プロパティが削除されました。BsonBinaryData.ToGuid()
メソッドは、サブタイプ4のBsonBinaryData
オブジェクトでのみ呼び出しできます。オブジェクトに他のサブタイプがある場合は、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
値として直列化していました。decimal
またはDecimal128
の値を string として v 3.0でシリアル化するには、フィールドに[BsonRepresentation(BsonType.String)]
属性を適用します。直列化化 中にBSON型を指定する方法の詳細については、 POCO ページの「カスタム直列化」セクションを参照してください。
デフォルトでは 、ドライバーは
DateTimeOffset
値をBSONドキュメントとして直列化します。以前のバージョンのドライバーでは、ドライバーはこれらの値をデフォルトでBSON配列として直列化していました。 v 3.0でDateTimeOffset
値を配列としてシリアル化するには、フィールドに[BsonRepresentation(BsonType.Array)]
属性を適用します。デフォルトのJSON出力モードは Relaxed Extended JSONで、 BSONドキュメントを記述するJSON標準に基づく string形式。緩和型拡張JSONは、型の保存を犠牲にして、読みやすさと相互運用性を重視します。
別のJSON出力モードを使用するには、新しい
JsonWriterSettings
オブジェクトを作成します。このオブジェクトのOutputMode
プロパティをJsonOutputMode
列挙の値に設定し、ドキュメントを直列化するときにそのオブジェクトをToJson()
メソッドに渡します。次のコード例は、 BSONドキュメントを 厳密な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
コンストラクターは、配列ではなく 1 つのCredential
オブジェクトのみを受け入れます。Amazon Web Services (AWS)認証を使用するには、プロジェクトに
MongoDB.Driver.Authentication.AWS
パッケージを追加し、アプリケーションのブートストラップ コードに認証プロバイダを登録する必要があります。 .NET/ C#ドライバーでAWS認証を使用する方法の詳細については、「 MONGODB- AWS」を参照してください。使用中の暗号化を使用するには、プロジェクトに
MongoDB.Driver.Encryption
パッケージを追加し、アプリケーションのブートストラップ コードに暗号化メカニズムを登録する必要があります。 .NET/ C#ドライバーで使用中の使用中の暗号化する方法の詳細については、 MongoDB Serverマニュアルの「 使用中の使用中の暗号化」を参照してください。浮動小数点の
Infinity
またはNaN
の値を整数表現に直列化または逆直列化しようとすると、ドライバーはOverflowException
をスローします。浮動小数点のInfinity
とNaN
値の詳細については 、Double. NaN、 Double.positionInfinity、 Double. NegativeInfinity (MSDN の場合)。ドライバーには、
BsonValue
クラスに対する次の変更が含まれています。AsLocalTime
とAsUniversalTime
プロパティから[Obsolete]
属性を削除します。AsDateTime
プロパティを削除します。 AsUniversalTime の使用 プロパティを使用してください。AsNullableDateTime
プロパティを削除します。 AsNullableUniversalTime の使用 プロパティを使用してください。