升级提供商版本
Overview
在本节中,您可以确定将提供商升级到新版本时必须对应用程序进行的基本更改。
升级前,请执行以下操作:
重大更改
破坏性变更 (breaking change)是对从特定版本的提供商开始的约定或行为的修改。 如果在升级提供商之前未解决此问题,此类更改可能会导致应用程序无法正常工作。
本节中的重大更改按引入它们的提供商版本进行分类。 升级提供商版本时,请解决当前版本和升级版本之间的所有重大更改。 示例,如果您要将提供商从 v 8.0升级到 v 8.5 ,请解决v 8.0之后版本的所有重大更改, 包括 v 8.5下列出的任何内容。
版本 8.2.0破坏性变更
8.2.0EF Core 提供程序的 版本不会直接引入任何重大更改。但是,根本的.NET/ C#驱动程序在3.0 v3.0 发布中引入了许多潜在的重大更改,这可能会影响您的应用程序。要详细学习;了解.NET/ C#驱动程序 版本中的重大更改,请参阅 升级到版本30 。 .NET/ C#驱动程序文档中的 指南 。
版本 8.1.0破坏性变更
更新了 EF Core 提供程序以运行所有更改作为MongoDB事务运行。 如果您的应用程序使用 v 5.0之前版本的MongoDB Server , 或不在副本集运行,则必须对应用程序进行以下更改:
如果您的应用程序配置为适用于 v 5.0之前的MongoDB Server版本, 您必须升级到MongoDB Server v 5.0或更高版本。
如果您的应用程序在独立运行服务器上运行,则必须将独立运行服务器重新配置为单实例副本集。 要学习;了解有关如何重新配置独立运行服务器的更多信息,请参阅MongoDB Server手册中的将独立运行的自管理mongod转换为副本集。
如果您的应用程序在容器环境中运行,请切换到单实例副本集容器(如果有)。
为避免事务期间出现快照问题,请在应用程序启动期间调用
EnsureCreated()
或EnsureCreatedAsync()
方法,而不是隐式创建集合或数据库。注意
如果应用程序在共享集群上运行,则调用
EnsureCreated()
或EnsureCreatedAsync()
方法会引发错误。在免费和共享集群上运行的应用程序不应调用这些方法。如果不想确保 开放式并发 事务,您可以在应用程序设置期间通过在
Database.AutoTransactionBehavior = AutoTrasactionBehavior.Never
DbContext
子类上设置 来禁用自动事务。将默认GUID存储格式从
CSharpLegacy
二进制格式更改为Standard
格式。 如果数据库包含非Standard
格式的现有 GUID,我们建议将其转换为Standard
格式。CamelCaseElementNameConvention
根据属性名称而不是类名称转换所属实体的大小写。 如果您的应用程序使用CamelCaseElementNameConvention
,数据大小写可能会更改。