我有一个包含任意值的 Entity Framework (代码优先)表。这些值的类型可以从简单的 int
到完整的 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,并拥有一个类型化属性,该类型化属性与易于映射到数据库的每种类型的类型化数据库列相匹配。所以整数、 double 和字符串很简单,就像您自己列出的那样。
对于任意对象,您需要将其序列化为 XML 或 JSON 之类的内容,然后将其保存到字符串字段中。这更复杂,因为您需要在将来需要时再次将其反序列化回对象。
关于c# - 在 Entity Framework 中存储多类型值的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29245668/