I\'m experiencing some difficulties with a WCF RIA Services similar to the problem specified in this thread.
The domainservice method I\'m creating (a Query method) shou
Super old question, I know. But I just got bit by this, and found an answer. From the MSDN Docs on ComplexObject:
But a ComplexObject differs from an Entity in important ways. In particular, complex types do not have identities. This means that they do not have members marked with the KeyAttribute and so clients cannot do identity caching for them as it does for entities. Complex types cannot be shared or referenced from multiple parent instances and they do not support inheritance.
Dirty workaround three, is to use the [Invoke] attribute and add a method to the domain service to expose the "complex type", which informs the WCF RIA tooling to create the entity on the client-side:
public ComplexObjectParameter ExposeComplexObjectParameter()
{
throw new NotSupportedException();
}
I put NotSupportedException in my domain service methods to prevent silent failures if the method is ever called remotely.
I'm not sure about how this solution affects the issue of losing "all RIA tracking functionality". It does not answer how to create a composable query using a complex type as a parameter.
It's dirty, but abstracts the problem closest to the source of problem. The calling and receiving code is cleaner. This maintains the "elegance" at the higher level while pushing the dirty down.