【发布时间】:2015-06-17 16:47:26
【问题描述】:
是时候摆脱害羞模式并在 stackoverflow 上发表我的第一篇文章了。
在进行了大量研究(插件、性能、索引、更新类型、朋友)并尝试了几种方法之后,我无法找到合适的答案/解决方案。
因此,如果可能的话,我想在 Microsoft Dynamics CRM 2013/2015 插件性能问题(或编码技术)方面获得您的反馈/帮助
场景:
Microsoft Dynamics CRM 2013/2015
2 个关系为 1:N 的实体
实体A
实体B
EntityB 具有以下列:
身份证 |实体 ID | ColumnDemoX (十进制) | ColumnDemoY(货币)
实体 A 有:500 条记录
实体 B 有: 每个实体 A 记录 150 条记录。所以 500*150 = 75000 条记录。
目标:
创建一个 Post Entity A 插件更新以“模仿”以下 SQL 命令
Update EntityB
Set ColumnDemoX = (some quantity), ColumnDemoY = (some quantity) * (some value)
Where EntityAId = (some id)
一种方法可能是:
using (var serviceContext = new XrmServiceContext(service))
{
var query = from a in serviceContext.EntityASet
where a.EntityAId.Equals(someId)
select a;
foreach (EntityA entA in query)
{
entA.ColumnDemoX = (some quantity);
serviceContext.UpdateObject(entA);
}
serviceContext.SaveChanges();
}
问题:
帖子插件更新中 150 条记录的 foreach 将需要 20 秒或更长时间。
虽然
更新 EntityB 设置 ColumnDemoX = (一些数量), ColumnDemoY = (一些数量) * (一些值) 其中 EntityAId = (一些 id)
这将需要 0.00001 秒
有什么建议/解决方案吗?
谢谢大家的阅读。
H
【问题讨论】:
标签: performance plugins dynamics-crm dynamics-crm-2013 dynamics-crm-2015