【问题标题】:ASP.NET WebAPI ODATA filter on heirarchical data URL syntax ($filter)ASP.NET WebAPI ODATA 过滤分层数据 URL 语法 ($filter)
【发布时间】:2014-05-23 22:54:53
【问题描述】:

我在 ASP.NET MVC 5.0 中创建了一个 ODATA webAPI,我在其中获取以下格式的数据:

    <ArrayOfVMUser xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/FX_OSS.ViewModels">
    <VMUser>
    <address>addsadfsadfasdfsadfsadfsdf</address>
    <emailAddress>amitendra.srivastava@espire.com</emailAddress>
    <employeeID>110786</employeeID>
    <firstName>Amitendra</firstName>
    <flag i:nil="true"/>
    <handPhone>11111</handPhone>
    <isActive>true</isActive>
    <landlineNo>11111</landlineNo>
    <lastName>Srivastavasa</lastName>
    <loginID>amitendra.srivastava</loginID>
    <modifiedBy>Amitendra.srivastava</modifiedBy>
    <modifiedDate>2014-04-04T00:00:00</modifiedDate>
    <roleName i:nil="true"/>
    <userGroup i:nil="true"/>
    <userGroups>...</userGroups>
    <userRoles>
    <VMUserRole>
    <LoginID>amitendra.srivastava</LoginID>
    <ModifiedBy i:nil="true"/>
    <ModifiedDate i:nil="true"/>
    <RoleName>Installer</RoleName>
    </VMUserRole>
<VMUserRole>
    <LoginID>amitendra.srivastava</LoginID>
    <ModifiedBy i:nil="true"/>
    <ModifiedDate i:nil="true"/>
    <RoleName>Specialist</RoleName>
    </VMUserRole>
    </userRoles>
    <zoneCode>North</zoneCode>
    </VMUser>

如何编写 URI 过滤器来获取角色名为“专家”的用户列表

有点像

/api/UsersSvc?$filter=userRoles.VMUserRole.RoleName eq 'Specialist'

【问题讨论】:

    标签: c# asp.net-web-api asp.net-mvc-5 odata


    【解决方案1】:

    这应该可以通过使用/ 而不是. 来实现

    /api/UserSvc?$filter=userRoles/VMUserRole/RoleName eq 'Specialist'
    

    但请记住,这仅适用于 1-1 或 n-1 关系。

    【讨论】:

    • 出现错误:URI 中指定的查询无效。属性“VMUserRole”的属性访问的父值不是单个值。属性访问只能应用于单个值。
    【解决方案2】:

    最后从 Daniel 的帖子中我意识到我需要使用 Any |所有过滤器收集。下面的 URL 对我有用。谢谢丹尼尔!!

    http://localhost:4444/api/userssvc?$filter=userRoles/any(c: c/RoleName eq 'specialist')
    

    【讨论】:

      猜你喜欢
      • 2021-06-22
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2013-03-12
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 2012-05-02
      相关资源
      最近更新 更多