Ben*_*min 4 linq .net-core azure-cosmosdb azure-cosmosdb-sqlapi
您好,我想获取 cosmos DB 数据库中容器的所有项目。我可以看到已经有很多可用的方法,但我没有看到任何 getAllItems 或类似的方法。
有没有像使用 LINQ 之类的简单方法来做到这一点?
谢谢
如果您想使用 Linq 来执行此操作,可以执行以下操作(如此处答案中的建议:How can I use LINQ in CosmosDB SDK v3.0 async query?):
var db = Client.GetDatabase(databaseId);
var container = db.GetContainer(containerId);
var q = container.GetItemLinqQueryable<Person>();
var iterator = q.ToFeedIterator();
var results = await iterator.ReadNextAsync();
Run Code Online (Sandbox Code Playgroud)
如果您想要非 Linq 解决方案,请使用此解决方案(取自 v3 SDK 示例:https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage /ItemManagement/Program.cs#L259:
QueryDefinition query = new QueryDefinition(
"select * from sales s where s.AccountNumber = @AccountInput ")
.WithParameter("@AccountInput", "Account1");
FeedIterator<SalesOrder> resultSet = container.GetItemQueryIterator<SalesOrder>(
query,
requestOptions: new QueryRequestOptions()
{
PartitionKey = new PartitionKey("Account1"),
MaxItemCount = 1
});
while (resultSet.HasMoreResults)
{
FeedResponse<SalesOrder> response = await resultSet.ReadNextAsync();
// Work through iterator list here
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
17396 次 |
| 最近记录: |