【问题标题】:How to convert a Dynamics Advanced Find query to LINQ?如何将 Dynamics Advanced Find 查询转换为 LINQ?
【发布时间】:2016-02-07 12:58:48
【问题描述】:

概述:

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

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

高级查找查询:

我在 Dynamics 上使用 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?

【问题讨论】:

  • 如果您创建了高级查找,您可以从 CRM 下载 Fetch XML 并使用它来创建 FetchExpression
  • @Nicknow 我将采用这种方法。您可以将该建议作为答案发布。

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


【解决方案1】:

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

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

  • 分组方式
  • 超过 1 个左外连接
  • 按相关列排序
  • ...

有很多复杂的查询示例可以使用here

【讨论】:

    【解决方案2】:

    你看过msdn的文章吗?

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

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

    【讨论】:

    【解决方案3】:

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多