Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取自定义实体的汇总查询结果_C#_Dynamics Crm 2011 - Fatal编程技术网

C# 如何获取自定义实体的汇总查询结果

C# 如何获取自定义实体的汇总查询结果,c#,dynamics-crm-2011,C#,Dynamics Crm 2011,当试图获取记录时,我得到了这个错误 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;

当试图获取记录时,我得到了这个错误

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添加到此中?

您只能对上描述的特定实体集使用
RollupRequest

所以这对“new_x”或“new_newpost”都不起作用

使用opportunity和account正确演示了
RollupRequest


我建议您只需创建自己的自定义
QueryExpression
来检索所有“new\u x”,然后使用
linkenties链接到“new\u newpost”

这是我的代码,因此可以获取汇总查询的结果

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;
}
列出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=新列表();
EntityCollection ec=null;
做
{
ec=xrm.RetrieveMultiple(质量保证);
ForEach(v=>result.Add((Guid)v.Attributes[rollupQuery.QueryEntityType+“id]”);
qa.PageInfo.PageNumber+=1;
}while(ec.morecords==true);
返回结果;
}
QueryExpression GetQueryExpression(XrmServiceContext xrm,字符串获取XML)
{
var req=new-FetchXmlToQueryExpressionRequest{FetchXml=FetchXml};
var result=(FetchXmlToQueryExpressionResponse)xrm.Execute(req);
返回结果。查询;
}