如何将 Dynamics Advanced Find 查询转换为 LINQ?

How to convert a Dynamics Advanced Find query to LINQ?

概览:

我已经编写了一个简单的控制台应用程序,可以连接到 Dynamics CRM 实例,在此之后 walk-through

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

高级查找查询:

我使用 Advanced Find search on Dynamics 进行了尝试,结果如下:

Query 1:

Look for: Users
Primary Email Status -> Equals -> Pending Approval

Query 2:

Look for: Users
Select -> Mailbox 
Status -> Equals -> Inactive

问题:

如何在 Dynamics SDK C# 代码中将上述两个查询转换为 LINQ?

您看过 msdn 文章了吗?

实际的 LINQ 查询看起来像这样:

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

正如 Gilgamesh 所回答的那样,您可以在那里使用几乎标准的 LINQ。

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

  • 分组
  • 超过 1 个左外连接
  • 按相关栏目排序
  • ...

您可以使用许多复杂的查询示例here

如果你使用LinQPad with the Dynamics CRM Driver you can obtain the resulting FetchXml of a Linq query. Other thing you can do is execute your fetchxml string directly in crm without changing it to a linq or lambda (example here)

希望对您有所帮助