我在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过滤器以获取其rolename为“expert”的用户列表
像
这样的东西/api/UsersSvc?$filter=userRoles.VMUserRole.RoleName eq'Profistist'
答案 0 :(得分:1)
应该可以使用/
代替.
/api/UserSvc?$filter=userRoles/VMUserRole/RoleName eq 'Specialist'
但请记住,这只适用于1-1或n-1关系。
答案 1 :(得分:1)
最后来自丹尼尔的帖子我意识到我需要使用Any |全部过滤集合。以下网址为我工作。谢谢Daniel !!
http://localhost:4444/api/userssvc?$filter=userRoles/any(c: c/RoleName eq 'specialist')