使用v1.8 .Net SDK
尝试返回Sales,其中Sale客户端数组包含我正在查找的客户端ID。
Sales.Where(sale => sale.Clients.Any(c => c.ClientId == clientID));
返回错误 “可以为空的对象必须有一个值。”
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification)
at System.Threading.Tasks.Task
1.get_Result()
在Microsoft.Azure.Documents.Linq.DocumentQuery 1.GetEnumerator()
at System.Collections.Generic.List
1..ctor(IEnumerable 1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable
1来源)
ClientID是一个GUID,但尝试查询客户端对象上的任何属性都会返回相同的错误。
如果我对同一数据运行相同的查询但只使用List集合(即不使用DocumentDB),则一切正常。
任何建议表示赞赏。 感谢
答案 0 :(得分:12)
此查询可以使用SelectMany + Where:
进行处理Sales.SelectMany(s => s.Clients.Where(c => c.ClientID == clientID).Select(c => s));