I have a few thousand objects that are in memory and of a few class types (ie: Products, Relationships, Categories, etc). Each object has properties such as Name, Price, ManufactureDate, etc. I would like to expose these objects through a wcf service and allow consumers to search, filter and maybe even do basic joins on these objects. I know the norm for a client is to pass a SQL query as a string to a service and return a collection of objects back to the client. I can't do this because in the server end, i have to query the objects in memory.
Is there a design pattern that I can use to communicate queries from the client to the server? Also, another requirement is that the client should not have to receive a new DLL if a new property is introduced at the server end and the client wants to perform a search on this new property.