One of the major issues with querying a webservice with the non-domain model approach to OpenAccess was that if you tried to return a list of objects directly you can't dispose of your scope! Ack!
What happens client side is that you get a callback error saying "The ObjectScope is already closed"...bummer I wanted those objects
I had a bunch of tickets go back and forth with the OpenAccess guys at Telerik and they suggested using fetch plans. I however do not want to setup 40 fetch plans :)
So lets use anon typed in-memory objects...they seem to return fine while allowing me to kill my scope.
So from this:
List<ViewAllRequest> returndata = (from r in scope.Extent<ViewAllRequest>()
select r).ToList();
To this:
var returndata = (from r in requests
select new {
RequestID = r.RequestID,
Status = r.Status,
ResidentName = r.ResidentName,
ResidentEmail = r.ResidentEmail,
}).ToList();
So really we're just re-creating the objects, but you can now dispose of your scope before you return from the webservice with no errors!
Cheers,
Steve
One of the major issues with querying a webservice with the non-domain model approach to OpenAccess was that if you tried to return a list of objects directly you can't dispose of your scope