How can I use LINQ in CosmosDB SDK v3.0 async query?

自古美人都是妖i 提交于 2020-05-12 19:42:22

问题


I've been following the official documentation here: https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-get-started#Query

But I can't figure out how to correctly use a LINQ expression instead on an SQL string. I experimented with GetItemLinqQueryable, but I don't know if is the right way to use it. Also is not async.

var db = Client.GetDatabase(databaseId);
var container = db.GetContainer(containerId);

var q = container.GetItemLinqQueryable<Person>();
var result = q.Where(p => p.Name == "Name").ToList();

Is this the right way to use LINQ with Cosmos v3, and how to make it async?


回答1:


You would use ToFeedIterator() and FeedIterator<T>.ReadNextAsync().

var db = Client.GetDatabase(databaseId);
var container = db.GetContainer(containerId);

var q = container.GetItemLinqQueryable<Person>();
var iterator = q.Where(p => p.Name == "Name").ToFeedIterator();
var results = await iterator.ReadNextAsync();


来源:https://stackoverflow.com/questions/57160051/how-can-i-use-linq-in-cosmosdb-sdk-v3-0-async-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!