首页 > 解决方案 > 对集合使用 linq 操作时,GraphBulkImport 库中的 CreateDocumentCollectionQuery 方法出错

问题描述

我在 .net Standard 2.0 项目中使用 CosmosDB>BulkExecutor nuget 使用批量执行器的这个 nuget(最新的预发布版本 2.4.1 预览版)参考链接,它说它支持 .net standard 2.0 但是在执行 linq 时出错对集合的操作

“One or more errors occurred. (, Request URI: /, RequestStats: , SDK: Windows/10.0.18363 documentdb-netcore-sdk/2.4.0)” 

以下是代码片段:

var dburi = UriFactory.CreateDatabaseUri(databaseId); var collection = client.CreateDocumentCollectionQuery(dburi); var container = collection.Where(c => c.Id.Equals(containerId)).AsEnumerable().FirstOrDefault(); 返回容器;

在上面的第 3 行中执行 linq 操作 where 和 First 时会引发错误。

以下是该库的部分堆栈跟踪:

   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at Microsoft.Azure.Documents.Linq.DocumentQuery`1.<GetEnumerator>d__31.MoveNext()
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Boolean& found)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   

这个 nuget 文档链接也让 Graph 感到困惑,因为它说如果您使用“批量执行器”,请使用 V3 版本,并且看起来这个 V3 版本不支持 Graph API。所以不确定如何在 cosmosdb 中使用 GraphBulkImport。

标签: linqazure-cosmosdbazure-cosmosdb-sqlapiazure-cosmosdb-gremlinapi

解决方案


问题出在我的 SDK url 配置中。这是不正确的。更改为正确的 SDK url 后,我不再收到此错误。感谢回复的人。

有一条消息说内部异常中有 InternalSErver 错误,这让我重新检查了 url,但是一条更好的消息说连接到源有问题会更有帮助


推荐阅读