我有一个返回序列化为 JSON 的 c# 对象的 API。
我需要在我的 API URL 上实现某种 OData 格式解析。例如,最初看起来像这样: http://api.loc/userprofiles/all/?$orderby=ProfileProperties.Email
我一直在寻找一些或多或少简单的库,可以让我解析 Filter / OrderBy (OData) 查询字符串并在我的数据源上应用过滤器。我发现Linq2Rest的格式非常简单,我可以像这样使用它:
var filtered = allItems.Filter(Request.Params).OfType<Content.UserProfile>();
问题是我的 Content.UserProfile 有一个嵌套属性 .ProfileProperties,其中包含我感兴趣的属性
因此,例如:
var user = new Content.UserProfile();
user.ProfileProperties.Email = "my@mail.com";
user.ProfileProperties.FirstName = "Fukoka";
.. ETC
不幸的是,Linq2Rest 无法解析我的查询并失败并显示消息 “ProfileProperties.Email 未被识别为有效属性” ..
然后如何对具有嵌套属性的项目执行此过滤器?