entity-framework - Entity Framework 添加对象似乎导致了严重的性能问题,如何解决?

标签 entity-framework azure entity-framework-6

我正在使用 EF6 和 POCO。我遇到了性能问题,并将其定位到以下代码中的 AddObject 行。所有其他线路都需要很短的时间。使用本地数据库

var myOrderList = db.Order.Where(r => r.SupplierId== mySupplier.Id).OrderBy(r => r.Id).ToList(); //Local 5ms Azure 40ms.

foreach (Order myOrder in myOrderList)
{
   var myOrderItem = new OrderItem
   {
       OrderId = myOrder.Id,
       ProductId = product.Id
   };
   db.OrderItem.AddObject(myOrderItem); //Local 20ms Azure 300ms.
}

db.SaveChanges(); //Local 12ms Azure 40ms.

因此,AddObject 似乎存在固有的性能问题,尤其容易受到 Azure 问题的影响。

关于如何解决此 AddObject 性能问题的想法?不确定为什么会发生这种情况。

谢谢。

编辑1

在 Azure 中,我针对 SQL Azure(Web 版)使用 Azure 网站(中型)。我的本地(开发)设置由同一台计算机上 WIndows 7 上的 IIS 和 SQL Server 2008 SP2 组成。

最佳答案

我在向 MS SQL Server 添加大量项目时遇到了类似的问题。我最终使用了 ExecuteSqlCommand,它要快得多。
但这只是将数据添加到数据库中,而不是添加到 EF 对象中 - 对于您的情况,这可能是问题,也可能不是问题。

http://msdn.microsoft.com/en-us/library/system.data.entity.database.executesqlcommand(v=vs.113).aspx

关于entity-framework - Entity Framework 添加对象似乎导致了严重的性能问题,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27955402/

相关文章:

c# - Entity Framework - 添加现有数据库

entity-framework - 获取当前登录的IdentityUser?

asp.net-mvc - 如何防止在DataFirst First模型中删除DataAnnotations属性

c# - 如何在 Entity Framework 中访问 c​​ontext.Database.SqlQuery?

azure - Golang azure blob 存储,0b blob 并覆盖下载的 blob 数据

azure - ListQueuesSegmented 与 ListQueues

Firefox 表示证书不受信任,即使证书链良好

c# - 如何将 Linq 语句的结果作为 List 获取?

c# - Entity Framework 延迟加载不起作用

entity-framework - Entity Framework 6.1.2 中有哪些新增功能?