Click here to Skip to main content
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 8:20am
Edited 10-Jan-12 10:17am
(no name)234.1K
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 370
1 OriginalGriff 195
2 Zoltán Zörgő 124
3 Dave Kreskowiak 120
4 DamithSL 115
0 OriginalGriff 7,610
1 DamithSL 5,559
2 Sergey Alexandrovich Kryukov 5,324
3 Maciej Los 4,961
4 Kornfeld Eliyahu Peter 4,539

Advertise | Privacy | Mobile
Web01 | 2.8.141223.1 | Last Updated 10 Jan 2012
Copyright © CodeProject, 1999-2014
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