【问题标题】:Best way to store collection of primitive datatypes in Entity framework code first首先在实体框架代码中存储原始数据类型集合的最佳方法
【发布时间】:2013-04-01 08:04:22
【问题描述】:

我首先使用 EF 代码作为我的项目的 ORM 技术,其中域模型具有如此多的原始数据类型集合。 存储原始数据类型的集合有哪些可能的解决方案以及最佳解决方案

我知道的解决方案如下:

1.**创建一个不同的类,该类将保存我们要使用其集合的原始数据类型的属性,而不是直接使用该原始类型的集合,而是使用新创建的类的集合,**更好的解释对于这种情况是****

Entity Framework Code First primitive collections

2.在单个列中序列化原始数据类型列表并使用一些分隔符来提取项目并编写自己的逻辑以将原始数据类型列表保存为单个列并使用逻辑将接收到的数据库值解析到后面到相应的数据类型集合。

所以,以上两个是我已知的解决方案但我想知道哪个是存储原始数据类型集合的最佳解决方案

【问题讨论】:

  • 您需要查询它们 - 还是只加载/保存一次。列表有多大等等。这就是您应该查看的内容。这一切都取决于手头的情况。

标签: entity-framework entity-framework-4 ef-code-first entity-framework-4.1 entity-framework-5


【解决方案1】:

在阅读并尝试了这么多选择之后,我发现 以上两种策略都增加了复杂性、数据检索和保存。

因此,最好的方法(在我看来)是将原始数据类型的集合序列化为数据库中的字节数组并反序列化数据数据库:

Class Sample
{
    [NotMapped]
    Public List<String>Strings { get; set; }

    Public Byte[] StringBytes
    {
        get
        {
            var binaryfomrate = new BinaryFormatter();

            var memoryStream = new MemoryStream();

            binaryFormatter.searilze(ms, this.Strings);

            return ms.ToArray();
        }
        set
        {
            var binaryfomrater = new BinaryFormatter();
            this.Strings = binaryFormtter.Deserialize(value) as List<String>();
        }
    }
}

【讨论】:

    【解决方案2】:

    第一个解决方案是将集合类型存储在数据库中的最佳方式。换句话说,您必须为原始类型定义一个类,然后在两个类之间建立关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多