【问题标题】:Best way to store multi-type values in Entity Framework在实体框架中存储多类型值的最佳方式
【发布时间】:2015-03-25 00:52:49
【问题描述】:

我有一个包含任意值的实体框架(代码优先)表。这些值的类型可以从简单的ints 到完整的objects 不等。存储此类数据的最佳方式是什么?我有一个enum,它包含所有那些名为TypeEnum的可用类型

public class Stream
{
    public int Id { get; set; }

    // Idea 1
    public int IntegerValue { get; set; }
    public double DoubleValue { get; set; }
    public string StringValue { get; set; }

    // Idea 2
    public TypeEnum Type { get; set; }
    public object Value { get; set; }

    // Idea 3: Create tables for every value of TypeEnum
}

【问题讨论】:

    标签: c# sql-server entity-framework code-first


    【解决方案1】:

    一种方法是遵循您的想法 1,并拥有一个类型化的属性,该属性与可轻松映射到数据库的每种类型的类型化数据库列相匹配。所以整数、双精度和字符串很简单,正如您自己列出的那样。

    对于任意对象,您需要将其序列化为 XML 或 JSON 之类的内容,然后将其保存到字符串字段中。这更复杂,因为您需要在将来需要时再次将其反序列化回对象。

    【讨论】:

    • 为什么是字符串字段 - 为什么不是 BLOB?
    • 我假设您会使用转换为字符串的序列化程序。但是,是的,您可以改为序列化为二进制数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2018-04-06
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多