【问题标题】:Maintainable serialization method for long-term storage of entities in .NET.NET中实体长期存储的可维护序列化方法
【发布时间】:2014-07-19 08:27:42
【问题描述】:

我有一个复杂的数据模型,其中包含许多需要存储的属性。由于不需要搜索数据库中的属性(我使用 Lucene.Net 进行搜索)我不想为模型的详细信息创建表和列,而是我想序列化整个模型和将其存储在TEXT 列中。

这种方法的一个问题是可维护性;具体来说,当数据模型需要更改时。将来可能会有一些convert机制来更新已经存储的实体。

哪种类型的序列化(JSON/XML/其他)以及哪种实现更适合这种场景?

【问题讨论】:

    标签: .net xml json serialization maintainability


    【解决方案1】:

    看看EAV 方法。
    这将使用 RDBMS 作为数据存储,但不是以关系方式。
    在关系数据库设计类别中,这不是推荐的模式,但它适用于架构频繁更改(甚至没有架构)的特定问题。
    Logging entity changes 是一个很好的示例。

    请注意,如果 EVA 方法将应用于关系数据模型,而 JOIN 是查询不可避免的一部分,那么使用 EVA 将是一种反模式。

    该模式是no schema DBMSs 的基础。

    【讨论】:

      【解决方案2】:

      我以前用 JSON 做过类似的事情。具体使用 JSON.NET 序列化程序。

      您需要您的模型类都支持无参数构造,但它确实可以很好地处理方案更改。

      因为您对强类型对象进行序列化和反序列化,所以如果您添加一个字段,十个现有数据将在这些属性上返回 null,而包装在未知属性中的数据将被忽略。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-06
        • 2023-03-13
        • 1970-01-01
        • 2016-04-11
        • 2019-07-09
        • 1970-01-01
        • 2015-11-03
        • 1970-01-01
        相关资源
        最近更新 更多