【问题标题】:Azure Table Storage & Dynamic TableServiceEntityAzure 表存储和动态 TableServiceEntity
【发布时间】:2011-11-23 05:56:46
【问题描述】:

我正在寻找一种在 Azure 表存储中创建本质上是动态的对象的方法。换句话说,除了 TableServiceEntity 所需的基本属性之外,它们没有定义的公开属性的类结构。换句话说,就像一个 JSON 对象。有没有人做过这样的事情?

【问题讨论】:

  • 如果您直接使用 REST API,您可以免费获得它,您只需自己构建 xml 有效负载。您是否尝试通过 .Net 存储客户端库访问表存储?

标签: azure-storage


【解决方案1】:

是的,我只是在表上有一个名为“Value”的属性,我用它来存储 JSON 字符串。只要您不想在查询中使用它,它就可以很好地工作。

编辑

我创建了一个小型库,用于将动态类型(或字典)与表存储一起使用。可在此处获得(参见 DynamicTableContext):https://github.com/richorama/AzureSugar

【讨论】:

    【解决方案2】:

    如果您希望在 .Net 代码中实现此目的,我建议您查看 CodePlex (http://azurestorageexplorer.codeplex.com/) 上的 Azure 存储资源管理器的源代码。我认为类的名称是 GenericEntity。

    【讨论】:

      【解决方案3】:

      我正在开发一个完全允许这样做的开源客户端。

      表存储服务是无模式的,但提供的 .NET 客户端没有公开它,它甚至没有模仿 REST API,因此很难遵循现有的 API 文档。

      对于 Cyan,我正在尝试使用 .NET 4 动态功能提供服务的“泄漏抽象”(嗨 Joel!)。

      这项工作仍在进行中,但您可以根据需要使用一些代码。

      【讨论】:

        【解决方案4】:

        我编写了一个支持动态(未指定)列的客户端,它使用字典来保存名称/值对。它还支持许多其他功能,例如数组、枚举和大于 64K 的数据。

        您可以通过 NuGet 从http://www.lucifure.com 下载 Lucifure Stash。

        【讨论】:

        • 哥们,你写了我读过的最奇怪的 c# 代码,这种编码风格有什么特别的原因吗?我很想知道它的好处
        • 我同意格式很奇怪:)。你是否也觉得代码结构很奇怪?我想要一种一致的格式样式,它支持复杂的表达式并且不需要长行需要水平滚动。我避免使用变量,除非它们确实是变量值持有者并且需要多次使用;所以我倾向于直接将代码作为函数参数值注入。最终我发现额外的空格、列对齐、缩进和链接中断让我更容易区分更复杂的表达式中的子表达式并更好地掌握代码结构。
        • @Lucifer 感谢您的解释,我花了更多时间查看示例,我想我可以习惯它,您提出了一些有效的观点。
        猜你喜欢
        • 2012-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 1970-01-01
        • 2021-04-23
        • 2021-09-13
        相关资源
        最近更新 更多