Docs 菜单
Docs 主页
/ /

升级到版本 2.x

本页介绍将.NET/ C#驱动程序升级到版本 2 .x 时,可能需要对应用程序进行的更改。

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

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

  2. 按版本划分的重大更改部分中,解决应用程序使用的驾驶员版本与目标升级版本之间的任何重大更改。

    例子

    如果您要将驱动程序从 v2.14 升级到 v2.21,解决v2.14 之后版本的所有破坏性变更(v2.19)、包括对 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>
  • 驾驶员更改了MongoDB 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 中为 LINQ2 配置LinqProvider,如下面的代码示例所示:

    var connectionString = "<connection string>";
    var clientSettings = MongoClientSettings
    .FromConnectionString(connectionString);
    clientSettings.LinqProvider = LinqProvider.V2;
    var client = new MongoClient(clientSettings);

    如果应用应用程序使用 LINQ3 提供商程序,则在更新大量时不能使用-1 表示位置操作符。要学习;了解如何使用位置操作符,请参阅更新一个和更新多个。

  • 该驱动程序删除对 MongoDB Server v3.4 及更早版本的支持。您必须将MongoDB Server升级到 v3.6 或更高版本。

    要学习;了解如何升级MongoDB Server部署,请参阅MongoDB Server手册中的发布说明。要学习;了解有关.NET/ C#驱动程序和MongoDB Server之间兼容性的更多信息,请参阅兼容性页面。

  • 该驱动程序删除对 .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 或更高版本。

后退

升级

在此页面上