【问题标题】:IQueryable/IEnumerable applied usage: database query request against database with Azure CosmosDBIQueryable/IEnumerable 应用用法:使用 Azure CosmosDB 针对数据库的数据库查询请求
【发布时间】:2019-07-29 23:02:17
【问题描述】:

下面的代码是针对Cosomos DB的查询,我想知道会向数据库发送多少次请求?

此代码在减少数据库查询方面有什么改进?

public async Task<List<Employee>> GetEmployee(string userName)
{
    IEnumerable<User> users = GetByUser(userName);

    return GetEmployee(users);
}

private IEnumerable<User> GetByUser(string userName)
{
    var captureResultHistoryLink = UriFactory.CreateDocumentCollectionUri(Database, Container);

    var user = _documentClient.CreateDocumentQuery<User>(captureResultHistoryLink)
        .Where(r => r.UserName == userName);

    return user;
}


private async Task<List<Employee>> GetEmployee(IEnumerable<User> users)
{
    var selectedUsers = users.Where(o => o.Age > 18);

    foreach (var user in users)
    {
        if (selectedUsers.Contains(user.Id))
        {
            // ...
        }
    }
}

【问题讨论】:

    标签: c# .net azure-cosmosdb azure-cosmosdb-sqlapi


    【解决方案1】:

    您可以使用 Fiddler 查看请求的次数。

    但是,看起来会有 N 个基于用户的请求。有两种处理方式,

    (i) 使用分页获取所有项目,并在客户端使用名称和年龄过滤用户。

    (ii)更改请求以从第一个请求本身的年龄和姓名中过滤用户。

    【讨论】:

    • 我认为不会是 N 个请求。
    猜你喜欢
    • 2019-11-25
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    相关资源
    最近更新 更多