DocumentDB Linq查询按列表中的对象属性

时间:2018-06-11 08:28:31

标签: c# linq azure azure-cosmosdb

我正在尝试按照here提供的解决方案,但仍然没有成功: 此查询返回null

  var plan = _dbClient.CreateDocumentQuery<Plan>(_collectionUri)
            .SelectMany(p => p.Users.Where(u => u.Id == userId)
            .Select(u => p))
            .AsEnumerable()
            .FirstOrDefault();

虽然这会返回我正在搜索的文档(我试图不在[{1}}之前离开AsEnumerable

Where

这就是文件的样子:

  var plan = _dbClient.CreateDocumentQuery<Plan>(_collectionUri)
            .AsEnumerable() 
            .Where(p => p.Users.Any(u => u.Id == userId))
            .FirstOrDefault();

}

提前谢谢!

1 个答案:

答案 0 :(得分:0)

首先,我测试了你的第一个LINQ查询,它适用于我。

enter image description here

您需要检查对象中的案例问题是否与LINQ相对应。

enter image description here

其次,我测试了您的第二个LINQ查询,并将AsEnumerable保留在Where之前。它出现错误:Method 'Any' is not supported.

请检查LINQ to SQL API,我建议您使用ARRAY_CONTAINS制作sql。

希望它对你有所帮助。