0

レコードを取得しようとすると、このエラーが発生します

The 'Rollup' method does not support entities of type 'new_X'.

これは私のコードです

RollupRequest req = new RollupRequest();
QueryExpression qe = new QueryExpression();
qe.EntityName = "new_x";
qe.ColumnSet = new ColumnSet(true);
req.Query = qe;
req.Target = new EntityReference("new_newpost", new Guid("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
req.RollupType = RollupType.Related;
RollupResponse resp = (RollupResponse)xrm.Execute(req);

ロールアップクエリの結果を取得するにはどうすればよいですか

前もって感謝します


カスタムエンティティの場合、休閑を行うことができます

var rollupQuery = xrm.GoalRollupQuerySet.Where(c => c.Id == x.new_RecordstoRun.Id).First();
var result = xrm.RetrieveMultiple(new FetchExpression(rollupQuery.FetchXml));

しかし、これに「スキップ」または「テイク」Linqを追加するにはどうすればよいですか?

4

2 に答える 2

1

は、 MSDNRollupRequestで説明されている特定のエンティティセットでのみ使用できます。

したがって、これは「new_x」または「new_newpost」では機能しません。

この記事RollupRequestには、機会とアカウントの使用についての正しいデモンストレーションがあります。

QueryExpressionすべての「new_x」を取得し、「new_newpost」にリンクする独自のカスタムを作成することをお勧めしますLinkEntities

于 2012-11-05T16:34:20.010 に答える
0

これが私のコードなので、RollupQueryの結果を取得します

List<Guid> GetAllResultsFromRollupQuery(XrmServiceContext xrm, Guid rollupQueryId)
{
    var rollupQuery = xrm.GoalRollupQuerySet.Where(v => v.Id == rollupQueryId).First();
    var qa = GetQueryExpression(xrm, rollupQuery.FetchXml);

    qa.PageInfo.Count = 1000;
    qa.ColumnSet.AddColumn(rollupQuery.QueryEntityType + "id");

    var result = new List<Guid>();
    EntityCollection ec = null;

    do
    {
        ec = xrm.RetrieveMultiple(qa);
        ec.Entities.ToList().ForEach(v => result.Add((Guid)v.Attributes[rollupQuery.QueryEntityType + "id"]));
        qa.PageInfo.PageNumber += 1;

    } while (ec.MoreRecords == true);


    return result;
}

QueryExpression GetQueryExpression(XrmServiceContext xrm, string fetchXml)
{
    var req = new FetchXmlToQueryExpressionRequest { FetchXml = fetchXml };
    var result = (FetchXmlToQueryExpressionResponse)xrm.Execute(req);
    return result.Query;
}
于 2012-11-07T09:21:08.050 に答える