Click here to Skip to main content
11,705,119 members (38,829 online)
Rate this: bad
Please Sign up or sign in to vote.
See more: WCF Data Services
Hello everyone

just a quick question I have a javascript client implementation for WCF data services currently where I am required to do partial data updates due to the complexity of the model. I have successfully implemented the Data Services MERGE operation and it seems to work correctly for everything except complex Types. When a merge operation is performed a new instance of the complex type is initialized, the changed values are set correctly but the values that were not affected are reset to default values (because the complex type is re-instantiated). Is there anyway to prevent this behavior within the service?

basically if you have the following EntityModel exposed

class EntityModel
  public int Id {get; set;}
  public ComplexObject Obj {get; set;}
class ComplexObject()
  public string A {get; set;}
  public string B {get; set;}
  public string C {get; set;}
and i do a merge request changing the value of only the B property within the Obj property of my Entity.

    requestUri: baseUrl + '(' + model.Id + ')',
    method: "MERGE",
    data: { Id: model.Id, Obj: { B : 'Foo'  }  }
function () {
function (err) {

How do i ensure the A and C properties maintain their original values ?

Thank You
Posted 10-Jan-12 7:20am
Edited 10-Jan-12 9:17am
(no name)277.3K
killabyte at 8-Feb-12 20:32pm
when you change the complex object in your Entity Model do you set the EntityState.Modified on said entity model?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 595
1 OriginalGriff 289
2 Andy Lanng 175
3 CPallini 162
4 ppolymorphe 126
0 OriginalGriff 8,958
1 Sergey Alexandrovich Kryukov 8,276
2 CPallini 5,189
3 Maciej Los 4,726
4 Mika Wendelius 3,606

Advertise | Privacy | Mobile
Web03 | 2.8.150819.1 | Last Updated 10 Jan 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100