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

时间:2016-02-07 12:58:49

标签: c# linq dynamics-crm dynamics-crm-online

概述:

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

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

高级查找查询:

我使用动态上的Advanced Find search尝试了这一点,它等同于以下内容:

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?

3 个答案:

答案 0 :(得分:2)

当Gilgamesh回答时,你可以在那里使用非常标准的LINQ。

要小心,因为CRM linq提供程序仅实现LINQ功能的子集,并且某些操作不允许如下:

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

您可以使用here

查询的许多复杂示例

答案 1 :(得分:1)

你看过msdn文章吗?

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

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

答案 2 :(得分:0)

如果对LinQPad使用Dynamics CRM Driver,则可以获得Linq查询的结果FetchXml。您可以做的其他事情是直接在crm中执行fetchxml字符串而不将其更改为linq或lambda (example here)

希望有所帮助