Microsoft CRM 2011 Webサービスを使用してアクティビティの一覧を取得していますが、データ量のために要求がタイムアウトしています。私はページングを実装していて、利回りを返そうとしましたが、「接続が予期せず閉じられました」というエラーが発生しました。Microsoft CRMでの結果の制限
var activities = GetActivities();
var offset = startRowIndex > 0 ? activities.Skip(startRowIndex) : activities;
var limited = limit > 0 ? offset.Take(limit) : offset.Take(100);
return limited.ToList();
は、私はちょうど最初の100個のアイテムを返すことができる方法はあります:
public IEnumerable<LinkedActivity> GetActivitiesForUser() {
var svc = GetCrmService();
var cols = new ColumnSet();
cols.Attributes = new[] { "activityid", "addressused", "scheduledstart", "scheduledend", "partyid", "activitypartyid", "participationtypemask", "ownerid" };
var query = new QueryExpression();
query.EntityName = EntityName.activityparty.ToString();
query.ColumnSet = cols;
LinkEntity link = new LinkEntity();
//link.LinkCriteria = filter;
link.LinkFromEntityName = EntityName.activitypointer.ToString();
link.LinkFromAttributeName = "activityid";
link.LinkToEntityName = EntityName.activityparty.ToString();
link.LinkToAttributeName = "activityid";
query.LinkEntities = new[] {link};
var activities = svc.RetrieveMultiple(query);
var entities = new List<ICWebServices.activityparty>();
RetrieveMultipleResponse retrieved = (RetrieveMultipleResponse) svc.Execute(request);
//var pointers = new List<activitypointer>();
foreach (activityparty c in activities.BusinessEntities)
{
//yield return c; - this returned an error "The connection was unexpectedly closed"
entities.Add(((activityparty)c));
}
は、私が使用しているページングを実装するには?