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

C# 从Microsoft.Azure.DocumentDb迁移到Microsoft.Azure.Cosmos以进行数据访问。并非所有选项都可用,c#,azure,azure-cosmosdb,C#,Azure,Azure Cosmosdb,我正在将通过Microsoft.Azure.DocumentDB v2.7.0访问CosmosDB的代码库迁移到使用Microsoft.Azure.Cosmos v3.2.0的方法中。在此过程中,NuGet软件包“Microsoft.Azure.DocumentDB v2.7.0”已替换为“Microsoft.Azure.Cosmos v3.2.0” 几乎所有的代码都已迁移,以使用新NuGet中提供的组件,如下所示 SqlQuerySpec:QueryDefinition DocumentCl

我正在将通过Microsoft.Azure.DocumentDB v2.7.0访问CosmosDB的代码库迁移到使用Microsoft.Azure.Cosmos v3.2.0的方法中。在此过程中,NuGet软件包“Microsoft.Azure.DocumentDB v2.7.0”已替换为“Microsoft.Azure.Cosmos v3.2.0”

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

  • SqlQuerySpec:QueryDefinition
  • DocumentClient:CosmosClient
  • DocumentClientException:CosmosException
  • query.ExecuteNextAsync():query.ReadNextAsync()
当我们试图配置连接属性时,问题就出现了,我们过去常常使用旧NuGet包的
ConnectionPolicy
类来配置连接属性,如下所示

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

有谁能帮我找到如何在
Microsoft.Azure.Cosmos
命名空间中设置类似的属性,如
EnableEndpointDiscovery
EnableReadRequestsFallback
ConnectionProtocol
?我只能使用
CosmoClientOptions.ApplicationRegion
属性设置区域。包
Microsoft.Azure.Cosmos
是否未提供
Microsoft.Azure.DocumentDb
用于提供的所有定制?请导游

您提到的属性可能已被弃用,并替换为它们的
true
默认值。我不确定是否存在您不希望
EnableEndpointDiscovery
enableReadRequestsCallback
设置为true的用例。 在下一版本中有一些新的选项可能与thouhg有关。见第814页


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

有关ConnectionMode,请参阅CosmoClientOptions中的ConnectionMode:

ConnectionProtocol将相应地自动设置

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

EnableEndpointDiscovery在默认情况下为true,将其设置为true没有任何区别,您是否出于某种特殊原因设置了它?EnableReadRequestsFallback也是如此