c# - 在 Entity Framework 中存储多类型值的最佳方式

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

我有一个包含任意值的 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/

相关文章:

entity-framework - 比较两个 Entity Framework 实体的最佳方法是什么?

c# - 在 using block 内部,需要处理和重新实例化

c# - 在 asp.net 中遍历文本框 - 为什么这不起作用?

c# - 将站点上传到 IIS,找不到 Controller 资源(错误 500)。使用 iisexpress 在本地工作

c# - SqlBulkCopy 和在标识列上具有父/子关系的 DataTables

SQL Server批量插入

linq - EF4 LINQ Include(string) 替代硬编码字符串?

c# - 无法加载 DLL 'git2.dll' 找不到指定的模块

sql-server - 在 SQL Server 中从远程服务器检索数据!

c# - 根据条件删除具有多个id的记录