Asp.net web api CRM web api随过滤器一起扩展-内部联接还是左联接?

Asp.net web api CRM web api随过滤器一起扩展-内部联接还是左联接?,asp.net-web-api,dynamics-crm,dynamics-crm-webapi,Asp.net Web Api,Dynamics Crm,Dynamics Crm Webapi,我正在尝试使用WebAPI查询,在没有fetchxml的情况下,我能够构建这个端点,但结果集的行为类似于左外连接,但我需要内部连接 new\u-demo正在查找new\u-currentappointment(最新记录在此处从子网格列表中捕获),new\u-currentappointment正在查找new\u-user 我想要带有new\u currentappointment\u lookup的new\u demo列表,其中new\u user\u lookup是过滤器 https://cr

我正在尝试使用WebAPI查询,在没有fetchxml的情况下,我能够构建这个端点,但结果集的行为类似于左外连接,但我需要内部连接

new\u-demo
正在查找
new\u-currentappointment
(最新记录在此处从子网格列表中捕获),
new\u-currentappointment
正在查找
new\u-user

我想要带有
new\u currentappointment\u lookup
new\u demo
列表,其中
new\u user\u lookup
是过滤器

https://crmdev.crm.dynamics.com/api/data/v9.1/new_demo?$select=new_attribute_one&$expand=new_currentappointment_lookup($select=new_attribute_two;$filter=_new_user_lookup_value eq <guid>)
中解释的这个结果就是我要寻找的,但我找不到Dynamics CRM web api的结果。还有什么我错过的简单方法吗?

来自

这是与您的场景等效的查询:

{{webapiurl}}incidents?$select=title
&$expand=customerid_account($select=name;
$expand=primarycontactid($select=fullname;
$filter=contactid eq '384d0f84-7de6-ea11-a817-000d3a122b89'))
$filter只控制记录是否展开

这两者的区别在于:

{
    "@odata.etag": "W/\"31762030\"",
    "title": "Sample Case",
    "incidentid": "d3d685f9-cddd-ea11-a813-000d3a122b89",
    "customerid_account": {
        "name": "Fourth Coffee",
        "accountid": "ccd685f9-cddd-ea11-a813-000d3a122b89",
        "primarycontactid": {
            "fullname": "Charlie Brown",
            "contactid": "384d0f84-7de6-ea11-a817-000d3a122b89"
        }
    }
}
这是:

{
    "@odata.etag": "W/\"31762030\"",
    "title": "Sample Case",
    "incidentid": "d3d685f9-cddd-ea11-a813-000d3a122b89",
    "customerid_account": {
        "name": "Fourth Coffee",
        "accountid": "ccd685f9-cddd-ea11-a813-000d3a122b89",
        "primarycontactid": null
    }
}
请参阅(Ctrl+F“展开中的嵌套筛选器”),其中返回所有人员,但仅展开与$Filter匹配的行程

因此扩展中的$filter行为将只控制是否返回细节。 这不是内部联接行为。 您需要使用FetchXml来实现这一点。

来自

这是与您的场景等效的查询:

{{webapiurl}}incidents?$select=title
&$expand=customerid_account($select=name;
$expand=primarycontactid($select=fullname;
$filter=contactid eq '384d0f84-7de6-ea11-a817-000d3a122b89'))
$filter只控制记录是否展开

这两者的区别在于:

{
    "@odata.etag": "W/\"31762030\"",
    "title": "Sample Case",
    "incidentid": "d3d685f9-cddd-ea11-a813-000d3a122b89",
    "customerid_account": {
        "name": "Fourth Coffee",
        "accountid": "ccd685f9-cddd-ea11-a813-000d3a122b89",
        "primarycontactid": {
            "fullname": "Charlie Brown",
            "contactid": "384d0f84-7de6-ea11-a817-000d3a122b89"
        }
    }
}
这是:

{
    "@odata.etag": "W/\"31762030\"",
    "title": "Sample Case",
    "incidentid": "d3d685f9-cddd-ea11-a813-000d3a122b89",
    "customerid_account": {
        "name": "Fourth Coffee",
        "accountid": "ccd685f9-cddd-ea11-a813-000d3a122b89",
        "primarycontactid": null
    }
}
请参阅(Ctrl+F“展开中的嵌套筛选器”),其中返回所有人员,但仅展开与$Filter匹配的行程

因此扩展中的$filter行为将只控制是否返回细节。 这不是内部联接行为。
您需要使用FetchXml来实现这一点。

是的,类似的结构。如果这也可以用该模式进行测试,那么它的行为可能是相同的。你想让我检查一下吗?谢谢,这说明这是预期的行为。FetchXml是内部连接的唯一方式。是的,类似的结构。如果这也可以用该模式进行测试,那么它的行为可能是相同的。你想让我检查一下吗?谢谢,这说明这是预期的行为。FetchXml是内部连接的唯一方式。继续讨论github问题-继续讨论github问题-