【问题标题】:LINQ to query Service Fabric Reliable Collections?LINQ 查询 Service Fabric 可靠集合?
【发布时间】:2018-03-31 21:01:10
【问题描述】:

是否有计划为 Service Fabric 上的 Reliable Collections 添加 LINQ 支持?有谁知道可以启用此功能的任何扩展?在以前的 API 版本中似乎可以做到这一点,但现在不行了。

【问题讨论】:

    标签: linq azure-service-fabric service-fabric-stateful


    【解决方案1】:

    在可靠的字典上,您可以使用CreateEnumerableAsync 创建一个异步枚举。 (文档here。)

    接下来,您可以使用 Eli 的扩展方法 here 创建 linq 查询。

    来自要点的示例:

    var accounts = await (await accountNames.CreateLinqAsyncEnumerable(txn))
                    .Where(x => x.Value.IndexOf(name, StringComparison.InvariantCultureIgnoreCase) >= 0)
                    .SelectAsync(async x => new Account
                    {
                        Id = x.Key,
                        Name = x.Value,
                        Data = (await accountData.TryGetValueAsync(txn, x.Key)).Value
                    })
                    .ToList();
    

    【讨论】:

    • 这个性能怎么样?枚举只发生在填充范围的数据子集上,还是所有内容都被拉入内存并且枚举发生在完整集合上?
    • 也想知道上述评论的答案。我将有相当大的集合,我只需要获取记录的子集,如果这会将整个集合拉到内存中,那就不行了。
    • 我相信上面的代码会在某个时候将每个值都保存在内存中,但是如果没有预测该值,它将有资格(再次)被调出。可以使用索引和/或键过滤器优化此代码。
    猜你喜欢
    • 2017-12-08
    • 2017-12-07
    • 2017-03-20
    • 2016-08-09
    • 2017-12-01
    • 2016-03-14
    • 2022-06-18
    • 1970-01-01
    • 2017-01-28
    相关资源
    最近更新 更多