Click here to Skip to main content
15,892,697 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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

C#
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.

JavaScript
OData.request(
{
    requestUri: baseUrl + '(' + model.Id + ')',
    method: "MERGE",
    data: { Id: model.Id, Obj: { B : 'Foo'  }  }
},
function () {
    alert("ok");
},
function (err) {
    alert(err.message);
}


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

Thank You
Posted
Updated 10-Jan-12 9:17am
v3
Comments
killabyte 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)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900