开发者

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 app开发者_JAVA技巧lication, 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 !

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜