【问题标题】:Storing a collection of entities without traversing the collection存储实体集合而不遍历集合
【发布时间】:2014-08-06 05:07:57
【问题描述】:

我想知道是否可以将记录插入表中而不必以这种方式遍历我的集合,以提高性能。

using (DBEntities context = new DBEntities())
{
    foreach (var singular in plural)
    {
        context.EntitiDB.Add(singular);
        context.SaveChanges();
    }
}

【问题讨论】:

  • 什么是plural?它是与 DB 连接的对象,还是只是内存中的集合?
  • 复数是内存中的集合。

标签: c# entity-framework-4 ado.net


【解决方案1】:

您是否尝试过使用 context.EntitiDB.AddRange(plural)?另外我假设如果你将 context.SaveChanges() 移到循环之外,那可以提高性能。

【讨论】:

  • 如果我没记错的话,AddRange 只在 EF6 中引入
  • AddRange 未显示为选项“context.EntitiDB”。保存而不是在外面保存更改,我试过了。关于PD。值得注意的是,“unique”与“EntitiDB”是同一类型
  • 抱歉,我没有看到它被标记为 EF 4。
  • 人们显然是数据量的问题,为什么不按照 SoftwareFactor 的建议操作 poque,谢谢
【解决方案2】:

只需将 SaveChanges() 移出循环即可:

using (DBEntities context = new DBEntities())
        {
            foreach (var singular in plural)
            {
                context.EntitiDB.Add(singular); 
            }
            context.SaveChanges();
        }

【讨论】:

    猜你喜欢
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多