u did not get my point I think. this class has nothing to do with my data-context it is sample search criteria and as I am using .Net to.net scenario I always know that clients will always use NET to connect to service. I do not see any example of delete operation as this will be only single operation used for search on server-side I want something like

var Person = context.Persons.FirstOrDefault(search.GetExpression());

and there is nothing wrong with this as SearchCriteria is Message if I do this in a way u call service oriented I will have to create operationcontracts for each of parameters I could get as a filter criteria on client-side and I will end with tones of methods

GetPersonByName
GetPersonByBirthDate
GetPersonByIdCardNumber

and there are more than 60 entities and 1/3 of them will be search enabled. so pleas before u post your replay first carefully read question and after that give your remarks. I am not asking weather this is good or bad way all I am asking about is how to implement and if one says never do this first let me know how would u do this and after that I will think of better way.

@blowdart:

Messages not classes DataContract and DataMember this is how message is defined and we both know this as I wrote this is pseudo code so I just want to illustrate idea. if u mean custom messages with message headers  this is another story and not related to my question