Normally for web service scenarios we recommend using additional set of transport objects instead of exposing the persistent classes through the service. This way you have better control over the data contracts and do not need to "show" details about your data access layer implementation, like that you are using OpenAccess. Imagine that for each persistent object you have a transport object, which wraps the persistent data and is used to transmit it through the service.
The case of updating a single object would look like this:
1. A transport object is passed to a method of the service;
2. In the service implementation the original persistent object is retrieved by the ID of the transport object;
3. The persistent object is updated with the data received from the transport object and is committed to the database.
Updating the ID of a referenced object is also possible, as already discussed in the thread. I am afraid that there is no way to update a persistent object without loading it first.
the Telerik team