【发布时间】:2021-06-19 13:24:08
【问题描述】:
我的基础存储库中有一些方法可以在 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);
}
}
}
今天我将项目的 dotnet 版本从 dotnet 3.1 迁移到 5,之后出现此错误:
System.MissingMethodException:找不到方法:'System.Threading.Tasks.Task
1<Microsoft.Azure.Cosmos.Serialization.HybridRow.Result> Microsoft.Azure.Cosmos.Serialization.HybridRow.RecordIO.RecordIOStream.ReadRecordIOAsync(System.IO.Stream, System.Func21<Byte>,Microsoft.Azure.Cosmos.Serialization.HybridRow.Result>, System.Func2 1<Byte>,Microsoft.Azure.Cosmos.Serialization.HybridRow.Result>, Microsoft.Azure.Cosmos.Serialization.HybridRow.MemorySpanResizer1)'。
这发生在这一行:
var result = await transactionalBatch.ExecuteAsync();
版本信息:
- Microsoft.Azure.Cosmos v3.17.0
- Dotnet 5.0.201
有人知道怎么解决吗?
【问题讨论】:
标签: .net-core azure-cosmosdb azure-cosmosdb-sqlapi .net-5