I don’t have much experience in WCF and need clarification for an issue.
Are WCF private fields stored during a session – when a client app creates a connection to WCF and calls methods from the service? Is the state of these fields independent for various clients? Is it a good idea to store large data in them and use it for paging?
Personally I wouldn’t keep anything in the WCF service implementation instance, but then I also don’t enable “session” – simply, I want any client to be able to connect to any server, without the overheads of session tracking, sticky load balancing, etc.
If you want session, I’d personally do it outside of WCF, but in your case it sounds like you are really looking for something closer to a cache anyway. Either way, there are plenty of ways of implementing that preserve the (desirable to me, at least) stateless query metaphor. Sure, the data might still be around for re-use, but I don’t need a session for that.