文档菜单
文档首页
/ / /
C#/.NET
/

升级到版本 2.x

本页内容

  • 概述
  • 如何升级
  • 按版本显示的重大变更
  • 版本 2.28.0 的重大变更
  • 版本 2.21.0 的重大变更
  • 版本 2.19.0 的重大变更
  • 版本 2.14.0 的重大变更

本页面描述了在将 .NET/C# 驱动程序升级到 2.x 版本时,您可能需要对其应用程序进行的更改。

本页面的每个部分都列出了由驱动程序版本引入的潜在重大变更。要将 .NET/C# 驱动程序升级到 2.x 版本,请按照以下步骤操作

  1. 查看兼容性 页面,以确保新驱动程序版本与您的应用程序连接的 MongoDB 服务器版本以及您的应用程序运行的 .NET 或 .NET 框架版本兼容。

  2. 按版本显示的重大变更 部分中处理您的应用程序使用的驱动程序版本与您的目标升级版本之间的任何重大变更。

    示例

    如果您正在将驱动程序从 v2.14 升级到 v2.21,请处理 v2.14 之后的所有重大变更(包括 v2.21 的任何变更)。

以下部分描述了每个驱动程序版本引入的可能破坏性更改。如果驱动程序版本未包含在此部分中,则不会引入任何破坏性更改。

  • 驱动程序对所有驱动程序组件使用强名称。如果您的应用程序有引用多个 .NET/C# 驱动程序版本的依赖项,您必须创建绑定重定向,如下例所示

    <configuration>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="MongoDB.Driver"
    publicKeyToken="94992a530f44e321"
    culture="neutral" />
    <bindingRedirect oldVersion="2.28.0.0"
    newVersion="<version number to use>" />
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="MongoDB.Bson"
    publicKeyToken="94992a530f44e321"
    culture="neutral" />
    <bindingRedirect oldVersion="2.28.0.0"
    newVersion="<version number to use>" />
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="MongoDB.Driver.Core"
    publicKeyToken="94992a530f44e321"
    culture="neutral" />
    <bindingRedirect oldVersion="2.28.0.0"
    newVersion="<version number to use>" />
    </dependentAssembly>
    </assemblyBinding>
    </runtime>
    </configuration>
  • 驱动程序更改了 Atlas Search 构建器中Render 方法的签名。在之前的驱动程序版本中,这些方法具有以下签名

    Render(IBsonSerializer<TDocument> documentSerializer, IBsonSerializerRegistry serializerRegistry);

    在版本 2.21.0 及更高版本中,Render 方法具有以下签名

    Render(SearchDefinitionRenderContext<TDocument> renderContext);
  • ObjectSerializer 仅允许反序列化被认为是安全的类型。如果没有指定其他方式,ObjectSerializer 将使用 ObjectSerializer.DefaultAllowedTypes 返回的类型。

    要了解有关 ObjectSerializer 的更多信息,请访问 常见问题解答。有关 DefaultAllowedTypes 的更多信息,请访问 API 文档。

  • 默认的 LinqProvider 已更改为 LINQ3。可以在 MongoClientSettings 中配置 LinqProvider 以使用 LINQ2,如下面的代码示例所示

    var connectionString = "<connection string>";
    var clientSettings = MongoClientSettings
    .FromConnectionString(connectionString);
    clientSettings.LinqProvider = LinqProvider.V2;
    var client = new MongoClient(clientSettings);
  • 驱动程序停止支持 MongoDB 服务器 v3.4 及更早版本。您必须将 MongoDB 服务器升级到 v3.6 或更高版本。

    要了解如何升级您的MongoDB服务器部署,请参阅MongoDB服务器手册中的发行说明。要了解.NET/C#驱动程序与MongoDB服务器之间的兼容性,请参阅兼容性页面。

  • 驱动程序将停止支持.NET框架v4.5.2及更早版本。您的应用程序必须使用.NET框架v4.7.2或更高版本、.NET Core 2.x或更高版本,或.NET 5或更高版本。

    要了解.NET/C#驱动程序与.NET之间的兼容性更多信息,请参阅兼容性页面。

  • 驱动程序将停止支持.NET Standard v1.5。您的应用程序必须使用.NET Standard v2.0或更高版本。

返回

升级