I use Silverlight 4 with WCF RIA Services (domain services with EF4). Now I'd like to add a functionality, which allow an user to query data based on the criteria user selected (ad-hoc query). I've found that:
-WCF RIA Services doesn't allow anonymous types, so linq projection isn't possible.
-Exposing OData doesn't help (much), because you can't filter data at client-side.
Searching Internet, it seems I can use dynamic linq library described in the following link:
In short, the above link shows how to pass search predicate to server, and execute query at the server-side. But how about returning arbitrary data? Anonymous types can't be passed, and I don't want user to retrieve all data, but only those fields user chose. Maybe I should serialize my entity data in domain service and pass it as raw xml? Is it possible? If so, how can I do that?
For one of our scenarios we have a DomainService operation which returns xml strings, it looks something like this:
where
WidgetInfo
looks like this:I'm going to respond to returning arbitrary data. Take a look at the discussion here: https://stackoverflow.com/a/10018119/178620
I have achieved returning arbitrary data by creating a new POCO Entity, which contains IEnumerable. And I do serialization and deserialization using Json.Net Bson, which is much faster than XML.
Update: There's also the Dynamic Linq Library (https://stackoverflow.com/a/848435/178620)