简体   繁体   中英

Update a single field from a single entity with ria-services

There are situations where I only want to update a specific field of a single entity in the database.

I loaded the entities of that type into my silverlight application, and I know they are constantly changing on the server... but there is one field which has to be set by the silverlight client... the server will only read it. How can I just send the new data for that field to the server?

Example an Entity called "TextField". I have a list of TextFields loaded in the silverlight application and every now and then the user will update the Preload (string) property of an entity and that has to go back to the server without changing anything else on the server.

I tried adding a simple SetPreloadText(...) method to the DomainService but that just makes Silverlight crash with some odd error code.

Is there a way to this? Am I working against the idea of Silverlight here? I really don't want to send the entire object back because know that at any given time the version on the client will most likely be out of date. (which is ok for this specific application)

I think SetPreloadText(..) chrashes because RIA Services uses special naming coneventions like insert/update/delete for crud unless you specify it to be named different.

If you only want to update a specific property because the other my not have changed. You should look at

this.Context.AttachAsModified(currentEntityWithAllTextFields, this.ChangeSet.GetOriginal(currentEntityWithAllTextFields));

in your update method. With this you can exactly filter out what changed...

hope this helps...

Now you need to use this :

  this._yourENtitySet.Value.ApplyCurrentValues(modified); // The one you received
  this._yourENtitySet.Value.ApplyOriginalValues(original); /// The original one

Hope this help !

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM