在多个实体中保存更改需要很多时间(Breeze SaveChanges方法)

在多个实体中保存更改需要很多时间(Breeze SaveChanges方法),breeze,Breeze,我使用Breeze和实体框架代码优先模型 使用数据库(MySQL)的常规操作可以正常工作,但当我用50-60个子实体(一对多关系)保存一个父实体时,保存操作需要大量时间-大约40秒1分钟。实体没有很多属性,本地计算机上没有安装MySQL 如何加快此操作的速度?我已尝试重新设置此操作,但到目前为止无法完成。我的测试在不到1秒的时间内保存了5个父实体(客户)和49个子实体(订单)(总共250个实体)。我使用的是包含在breeze DocCode示例中的NorthwindIB SQL Server数据

我使用Breeze和实体框架代码优先模型

使用数据库(MySQL)的常规操作可以正常工作,但当我用50-60个子实体(一对多关系)保存一个父实体时,保存操作需要大量时间-大约40秒1分钟。实体没有很多属性,本地计算机上没有安装MySQL


如何加快此操作的速度?

我已尝试重新设置此操作,但到目前为止无法完成。我的测试在不到1秒的时间内保存了5个父实体(客户)和49个子实体(订单)(总共250个实体)。我使用的是包含在breeze DocCode示例中的NorthwindIB SQL Server数据库。(在下载页面上提供的breeze示例zip中)


您是否可以在不涉及breeze的情况下测试您的存储,看看问题是否与您正在使用的MySQL EF提供程序有关?我只是在这里猜测。

每次保存时都会发生这种情况还是只在第一次保存时发生?每次保存时都会发生这种情况。我注意到保存简单的子实体(没有额外的关系,只有常用的属性)很快就会完成。但是,如果我想保存具有某种1对1关系的子实体,则保存操作需要40-60秒。我将在早上的第一件事中对此进行查看。很抱歉我的回答太晚。这个问题的根源是客户端,而不是数据库。breeze.js updateEntity函数中有一个字符串:
targetEntity.setProperty(dp.name,val)。如果val==未定义,则此函数可以长时间工作(在Chrome和AMD X2处理器中约500毫秒)。我不知道为什么,可能是一些击倒转换。在我的例子中,50个实体中的每一个都有1-7个这样的未定义属性。因此,节省操作大约需要40秒。我在setProperty函数之前添加了下一个条件来加速这个过程:
if(val==undefined)val=null。现在操作需要5-10秒。嗯,你认为减速是轻微的还是彻底的?