如何将动态高级查找查询转换为 LINQ

本文关键字:查询 转换 LINQ 查找 高级 动态 | 更新日期: 2023-09-27 18:33:30

概述:

我编写了一个简单的控制台应用,该应用可以连接到本演练之后的动态 CRM 实例。

现在,我需要创建第二个方法,该方法将使用 LINQ 在 C# 代码中对该 CRM 的用户执行筛选查询。

高级查找查询:

我使用动态上的高级查找搜索进行了尝试,这相当于以下内容:

Query 1:
Look for: Users
Primary Email Status -> Equals -> Pending Approval
Query 2:
Look for: Users
Select -> Mailbox 
Status -> Equals -> Inactive

问题:

如何在动态开发工具包 C# 代码中将上述两个查询转换为 LINQ?

如何将动态高级查找查询转换为 LINQ

你可以在那里使用几乎标准的LINQ,正如吉尔伽美什回答的那样。

请注意,因为 CRM linq 提供程序仅实现 LINQ 功能的子集,并且不允许执行某些操作,例如:

  • 分组依据
  • 超过 1 个左外连接
  • 按相关列排序

您可以在此处使用许多复杂的查询示例

你看过 msdn 文章吗?

实际的 LINQ 查询将如下所示:

 var users = from systemUser in crmServiceContext.SystemUserSet  
             where systemUser.PrimaryEmailStatus == //some value 
             select systemUser;  

如果将 LinQPad 与 Dynamics CRM 驱动程序一起使用,则可以获取 Linq 查询的结果 FetchXml 。您可以做的另一件事是直接在 crm 中执行 fetchxml 字符串,而无需将其更改为 linq 或 lambda(此处示例)

希望对您有所帮助