使用早期绑定

时间:2017-08-14 04:42:15

标签: c# dynamics-crm dynamics-crm-2015 query-expressions

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

我把它写成:

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

但我不知道如何通过Desc条件在这里写出条件和前1个顺序。

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

- Logical name - oph_submissionchannel
- Schema Name  - oph_SubmissionChannel

并按照Guid或任何唯一ID进行排序。

如何在这里编写查询表达式?或者还有其他更好的选择吗?我试图避免使用FetchXML。

2 个答案:

答案 0 :(得分:1)

您必须使用PagingInfo来实现此目标。

opportunityProductsQuery.PageInfo.Count = 1;

http://www.aerospike.com/docs/operations/configure/namespace。此示例显示如何使用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);

答案 1 :(得分:1)

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

QueryExpression opportunityProductsQuery = new QueryExpression
{
    EntityName = PCSEPortal.oph_ophthalmicclaim.EntityLogicalName,
    TopCount = 1,
    ColumnSet = new ColumnSet("Name")...
};