2

我想使用早期绑定查询表达式从我的 CRM 实体中检索最高记录。

我把它写成:

QueryExpression opportunityProductsQuery = new QueryExpression
        {
            EntityName = PCSEPortal.oph_ophthalmicclaim.EntityLogicalName,
            ColumnSet = new ColumnSet("Name"),
            Criteria = new FilterExpression
            {
               new ConditionExpression
                        {
                            //condition
                        }
            }
        };
        return "";

但我不确定如何在此处按 Desc 条件编写 where 条件和 top 1 order。

对于 where 条件,我将列作为提交渠道

- Logical name - oph_submissionchannel
- Schema Name  - oph_SubmissionChannel

并按 Guid 或任何唯一 ID 订购。

这里怎么写查询表达式?或者还有其他更好的选择吗?为此,我试图避免使用 FetchXML。

4

2 回答 2

3

您还可以使用 QueryExpression 的 TopCount 属性:

QueryExpression opportunityProductsQuery = new QueryExpression
{
    EntityName = PCSEPortal.oph_ophthalmicclaim.EntityLogicalName,
    TopCount = 1,
    ColumnSet = new ColumnSet("Name")...
};
于 2017-08-26T14:18:07.300 回答
1

你必须使用PagingInfo来实现这一点。

opportunityProductsQuery.PageInfo.Count = 1;

阅读更多。这个例子展示了如何使用 LinkEntity、LinkCriteria、Sort Order Descending 和 PageInfo 来获得结果。

    LinkEntity le = opportunityProductsQuery.AddLink(PCSEPortal.oph_submissionchannel.EntityLogicalName, “oph_submissionchannelid”, “2ndentityname2”);
    le.Columns = new ColumnSet(“oph_submissionchannelid”);
    le.LinkCriteria.AddCondition(“oph_submissionchannelid”, ConditionOperator.Equal, Guid);   //where condition
    opportunityProductsQuery.AddOrder(“modifiedon”, OrderType.Descending);
    opportunityProductsQuery.PageInfo = new PagingInfo();
    opportunityProductsQuery.PageInfo.Count = 1;
    opportunityProductsQuery.PageInfo.PageNumber = 1;

    EntityCollection entitycolls = service.RetrieveMultiple(equery);
于 2017-08-14T18:00:08.850 回答