在CRM动态SDK.Query.QueryExpression中使用select count

本文关键字:select count QueryExpression CRM 动态 SDK Query | 更新日期: 2023-09-27 18:11:12

使用c#,我需要使用Microsoft Dynamics 2015的SDK.Query.QueryExpression库构建查询。我不知道如何排序和计算出现的次数。

我想知道每个产品在所有机会中使用了多少次。

sql查询本身非常简单:

SELECT b.Name, count(a.ProductId) as 'accurances'
FROM [ProkonCRM_MSCRM].[dbo].[OpportunityProductBase] a,
     [ProkonCRM_MSCRM].[dbo].[ProductBase] b
where a.ProductId = b.ProductId
group by b.name 

在CRM动态SDK.Query.QueryExpression中使用select count

据我所知,QueryExpressions不支持聚合函数。您可能需要查看FetchXML,因为那里支持聚合函数。这里有一些使用FetchXML实现你想要的示例:https://msdn.microsoft.com/en-us/library/gg309565.aspx数

FetchXML中的示例(未测试,您的实体名称可能不同,我假设它是N:N关系)

<fetch distinct='false' mapping='logical' aggregate='true'> 
    <entity name='product'> 
       <attribute name='name' alias='productName' groupby='true'/> 
       <link-entity name='opportunityproduct' from='opportunityid' to='opportunityid'>
           <attribute name='productid' alias='occurences' aggregate='count' />
       </link-entity> 
    </entity> 
</fetch>

我假设您有CRM 2015的内部部署实现。基于这个假设,你可以选择直接查询你的CRM数据库,并使用c#执行SQL查询(例如使用Microsoft.Data.SQL库)。

查询FilteredViews非常重要,因为这是直接查询CRM数据库的推荐方法。

FilteredViews Reference: https://technet.microsoft.com/en-us/library/dn531182.aspx