【问题标题】:odata filtering based on the property of a relation基于关系属性的odata过滤
【发布时间】:2014-10-16 11:26:55
【问题描述】:

我正在尝试根据称为“listcontact_association”的项目关系的一个方面来过滤一个集合,它表示联系人和列表之间的 N:N 关系。

我可以通过以下方式检索整个集合:

/ContactSet?$select=listcontact_association,FirstName,LastName,EMailAddress1&$expand=listcontact_association

这给了我:

但我想要的是能够仅根据 guid 获取属于特定列表的那些联系人:

ContactSet?$select=listcontact_association,FirstName,LastName,EMailAddress1&$expand=listcontact_association,FirstName,LastName,EMailAddress1&$filter=listcontact_association/ListId %20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27)

这告诉我:

No property 'ListId' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.Xrm.Sdk.Entity, Microsoft.Xrm.Sdk, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]' at position 24.

我想这是有道理的,因为可以有很多列表关联。

我是一个 odata 新手,不知道如何过滤我的数据,因此感谢任何帮助。

【问题讨论】:

    标签: rest odata dynamics-crm microsoft-dynamics


    【解决方案1】:

    这是因为listcontact_association是一个集合,在这种情况下,你可以根据你的要求使用lamda表达式(这里只列出过滤子句):

    按任何匹配条件的listid过滤。

    $filter=listcontact_association/any(a:a/ListId%20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27))
    

    过滤所有符合条件的listid

    $filter=listcontact_association/all(a:a/ListId%20eq%20(guid%2787F2A0AF-A142-E411-93FA-000C29482C88%27))
    

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2021-03-09
      • 2020-09-29
      • 2021-08-30
      相关资源
      最近更新 更多