JSON としてシリアル化された c# オブジェクトを返す API があります。
API URL にある種の OData 形式の解析を実装する必要があります。たとえば、元々は次のようになっています: http://api.loc/userprofiles/all/?$orderby=ProfileProperties.Email
Filter / OrderBy (OData) クエリ文字列を解析し、データ ソースに Filter を適用できる、多かれ少なかれ単純なライブラリを探していました。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";
..など
残念ながら、Linq2Rest はクエリを解析できず、 「ProfileProperties.Email は有効なプロパティとして認識されません」というメッセージで失敗します。
ネストされたプロパティを持つアイテムに対してこのフィルターを実行するにはどうすればよいですか?