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);
返回结果。查询;
}