我有一个API,返回序列化为JSON的c#对象。Linq2Rest不适用于嵌套属性?
我需要在我的API网址上实现某种OData格式解析。 也就是说例如,原来是这样的: http://api.loc/userprofiles/all/?$orderby=ProfileProperties.Email
我一直在寻找一些或多或少直截了当库,让我来分析过滤器/排序依据(OData的)查询字符串,并在我的数据源应用筛选。我发现Linq2Rest它很简单格式,其中我可以用它喜欢:
var filtered = allItems.Filter(Request.Params).OfType<Content.UserProfile>();
问题是,我Content.UserProfile有一个嵌套属性.ProfileProperties,其中包含我感兴趣的
属性因此,例如:
var user = new Content.UserProfile();
user.ProfileProperties.Email = "[email protected]";
user.ProfileProperties.FirstName = "Fukoka";
..等
不幸Linq2Rest无法解析我的查询和失败,提示信息 “ProfileProperties.Email不被识别为一个有效的财产” ..
我怎样才能然后对嵌套属性的项目该过滤器?
非常感谢!它现在似乎在工作。唷:)是最初的URL是我写的(我正在测试新的东西..)..现在,这一步似乎解决了,我的下一个问题将是 - 我应该如何在客户端上生成这些URL?你能指导我吗? :) – Denis
Linq2Rest也有一个客户端部分。看看这个教程:http://reimers.dk/tutorials/using-linq2rest-as-a-client – jjrdk
谢谢!我找到了这个页面,但我一直在努力寻找IRestClient的实现;如果我不需要任何客户端和反序列化,该怎么办?我只需要Linq2Rest在Linq表达式中创建适当的查询字符串(在URL中)(甚至应用于'dummy'属性 - Provider.Query) – Denis