在Entity Framework中存储多类型值的最佳方法

时间:2015-03-25 00:52:49

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

我有一个包含任意值的实体框架(代码优先)表。这些值的类型可以从简单的ints变为完整的object。存储此类数据的最佳方法是什么?我有一个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
}

1 个答案:

答案 0 :(得分:0)

一种方法是遵循您的 Idea 1 ,并为每个轻松映射到数据库的类型提供类型化数据库列的类型化属性。所以整数,双精度和字符串都很简单,就像你自己列出的一样。

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