0

Crm 产品实体包含 40,000 条记录。

在 CustomerPortal 中,我只是获取所有产品并将它们绑定到 Grid。

获取查询和绑定代码如下:

var DataSource = from products in xrm.ProductSet
                             select new DTO_RequiredProductField()
                             {
                                 Id = products.Id.ToString(),
                                 Name = products.Name.ToString(),
                                 Price = products.Price.ToString()
                             };
gdvProduct.DataSource = DataSource;
gdvProduct.DataBind();

这工作正常,但仅在第一次加载时才需要 30 到 40 秒才能加载(之后,相同的页面只需 2 秒即可加载)。

我没有使用会话/缓存之类的东西。

如果我使用下面的查询(只取 5 条记录),那么延迟行为也是一样的:

var DataSource = from products in xrm.ProductSet.Take(5)
                             select new DTO_RequiredProductField()
                             {
                                 Id = products.Id.ToString(),
                                 Name = products.Name.ToString(),
                                 Price = products.Price.ToString()
                             };

为什么第一次加载时延迟 30 到 40 秒?

4

1 回答 1

0

对 CRM 的第一个请求通常比下一个请求慢。

我的建议是WhoAmIRequest在创建IOrganizationService对象后执行,这样您的产品请求将不会作为第一个请求执行。

于 2014-07-02T21:54:54.207 回答