繁体   English   中英

从 Microsoft.Azure.DocumentDb 迁移到 Microsoft.Azure.Cosmos 以进行数据访问。 并非所有选项都可用

[英]Migrating from Microsoft.Azure.DocumentDb to Microsoft.Azure.Cosmos for data access. Not all options available

我正在将通过 Microsoft.Azure.DocumentDB v2.7.0 访问 CosmosDB 的代码库迁移到使用 Microsoft.Azure.Cosmos v3.2.0 的方法中。 During this process the NuGet package "Microsoft.Azure.DocumentDB v2.7.0" has been replaced with "Microsoft.Azure.Cosmos v3.2.0".

几乎所有代码都已迁移以使用新 NuGet 中提供的组件,如下所示。

  • SqlQuerySpec:查询定义
  • 文档客户端:CosmosClient
  • 文档客户端异常:宇宙异常
  • query.ExecuteNextAsync():query.ReadNextAsync()

当我们尝试配置以前使用旧 NuGet 包的ConnectionPolicy class 执行的连接属性时,问题就出现了,如下所示。

var policy = new ConnectionPolicy()
{
EnableEndpointDiscovery = true,
EnableReadRequestsFallback = true,
ConnectionMode = connectionMode,
ConnectionProtocol = Protocol.Http,
UseMultipleWriteLocations = useMultipleWriteLocations
};

谁能帮我找到如何在Microsoft.Azure.Cosmos命名空间中设置类似的属性,如EnableEndpointDiscoveryEnableReadRequestsFallbackConnectionProtocol 我只能使用CosmosClientOptions.ApplicationRegion属性设置区域。 package Microsoft.Azure.Cosmos是否没有提供Microsoft.Azure.DocumentDb曾经提供的所有自定义项? 请指导。

您提到的属性可能已被弃用并替换为它们的true默认值。 我不确定是否存在不希望将EnableEndpointDiscoveryEnableReadRequestsFallback设置为 true 的用例。 下一个版本的管道中有一些新选项可能与您相关。 注释见#814

至于连接模式,我认为在使用ConnectionMode.Direct时,您使用的是 TCP,而在使用ConnectionMode.Gateway时,您将根据提供的帐户端点使用 Http(s)。

对于 ConnectionMode,请参阅 CosmosClientOptions 中的 ConnectionMode: https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.cosmosclientoptions.connectionmode_?view=azure-dotnet#Microsoft_Azure

ConnectionProtocol 将相应地自动设置。

不再需要 UseMultipleWriteLocations,因为 SDK 将自动检测帐户上的功能。

EnableEndpointDiscovery 默认为 true,将其设置为 true 没有区别,您是否出于某种特殊原因设置它? 与 EnableReadRequestsFallback 相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM