.net core 更新到dotnet 5后出现Cosmos DB TransactionalBatch错误

.net core 更新到dotnet 5后出现Cosmos DB TransactionalBatch错误,.net-core,azure-cosmosdb,azure-cosmosdb-sqlapi,.net-5,.net Core,Azure Cosmosdb,Azure Cosmosdb Sqlapi,.net 5,我的基本存储库中有一些方法可以对Cosmos DB执行一些批处理操作,它们如下所示: public async Task AddRangeAsync(List<T> entities) { var container = _cosmosDbClientFactory.GetContainer(CollectionName); var entitiesList = entities.Split(_maxItemsPerBatch).ToList(

我的基本存储库中有一些方法可以对Cosmos DB执行一些批处理操作,它们如下所示:

public async Task AddRangeAsync(List<T> entities)
    {
        var container = _cosmosDbClientFactory.GetContainer(CollectionName);
        var entitiesList = entities.Split(_maxItemsPerBatch).ToList();

        foreach (var items in entitiesList)
        {
            var partitionKey = ResolvePartitionKey(items.FirstOrDefault());
            var transactionalBatch = container.CreateTransactionalBatch(partitionKey);

            items.ToList().ForEach(item => transactionalBatch.CreateItem(item));

            var result = await transactionalBatch.ExecuteAsync();

            if (!result.IsSuccessStatusCode)
            {
                throw new CosmosDbBatchOperationException(result.ErrorMessage);
            }
        }
    }
版本信息:

  • v3.17.0上的Microsoft.Azure.Cosmos
  • Dotnet 5.0.201

有人知道如何解决这个问题吗?

看起来您可能遇到了与本文讨论的相同的问题


对于Microsoft.Azure.Cosmos.Serialization.HybridRow.dll,一次完整的二进制清理和重建是值得的。如果这不起作用,您可以尝试将您的详细信息添加到该问题线程。

我已经检查了所有项目,它们都引用了相同的sdk版本,因此我清理了我的解决方案并删除了所有obj和bin文件夹,然后重试,但没有成功。
然后我尝试了这个,因为我使用了Microsoft.Azure.Cosmos 3.17.0AspNetCore.HealthChecks.CosmosDb 5.0.3,所以我将AspNetCore.HealthChecks.CosmosDb降级为3.1.2版本,并且成功了。

谢谢,我看到github讨论,我试图删除obj和bin文件夹,但没有修复。这可能有助于共享您的
csproj
文件或有关正在使用的依赖项的其他详细信息。
var result = await transactionalBatch.ExecuteAsync();