在 DocumentDB 上使用 Any 进行子集合的 LINQ 查询问题

LINQ Query Issue with using Any on DocumentDB for child collection

使用 v1.8 .Net SDK

尝试 return 销售,其中 Sale 客户数组包含我要查找的客户 ID。

Sales.Where(sale => sale.Clients.Any(c => c.ClientId == clientID));

Returns 错误 "Nullable object must have a value."

at System.Threading.Tasks.Task.ThrowIfExceptional(布尔值 includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task1.get_Result() 在 Microsoft.Azure.Documents.Linq.DocumentQuery1.GetEnumerator() at System.Collections.Generic.List1..ctor(IEnumerable1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable1 来源)

ClientID 是一个 GUID,但尝试查询任何 属性 客户端对象 return 都会出现同样的错误。

如果我 运行 对相同数据进行相同的查询,但只使用列表集合(即不使用 DocumentDB),那么一切都很好。

任何建议表示赞赏。 谢谢

这个查询也可以使用 SelectMany + Where:

Sales.SelectMany(s => s.Clients.Where(c => c.ClientID == clientID).Select(c => s));