【问题标题】:RavenDB: Adding documents from weakly-typed objectsRavenDB:从弱类型对象添加文档
【发布时间】:2012-06-11 13:14:34
【问题描述】:

我试图弄清楚如何将弱类型对象插入为 RavenDB 文档。

例如,我想插入一个 Datatable 作为文档:

  • 每一行都映射到一个文档
  • 列是文档中的映射键
  • 整个 Datatable 是相同架构的文档的集合

虽然数据在 Datatable 中,但它不适合关系数据库,而正确的用途应该是在 NoSQL DB 中。
我有很多具有不同架构的不同数据表,我不想手动为每个表创建一个表示类。

有什么建议吗?

【问题讨论】:

    标签: ravendb weakly-typed


    【解决方案1】:

    凯利格, 您可以使用如下格式来做到这一点:

    public class Item
    {
        public Dictionary<string, Item> Children {get;set;}
    
    }
    

    这将干净地序列化到 RavenDB,然后您可以轻松查询/加载/修改内容

    【讨论】:

    • 两个问题:1、类定义中的Item和Dictionary中的Item是同一个类型吗?如果是这样,为什么? 2. 这个类的序列化不会在根级别创建一个具有单个键的文档吗?我希望所有“列”都是文档根级别中的键。
    【解决方案2】:

    您可以创建一个动态类,其中每列都是一个字段,然后使用反射创建一个动态类型的新对象并将 Row[Col_Name] 映射到 obj.Col_Name。 创建对象后,将其存储在会话中。

    【讨论】:

    • 这就是我们最终所做的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多