The Guid stored in my entity is regenerating after I make a POST call to my WebApi controller. Here is how it goes, I have the following entity(POCO):
public class MyEntity : MyBaseEntity
{
public virtual int Prop1{ get; set;}
private string _ID;
public virtual string ID {
get {
if(_ID == null) {
_ID = Guid.NewGuid().ToString();
return _ID;
}
else {
return _ID;
}
}
set {
_ID = value;
}
} //End ID property
} //End Entity
The entity has a property named ID. I do some work on my controller and return a List<MyEntity>
to the MVVM front end which is loaded in the Kendo Grid
. The List<MyEntity>
contains newly generated GUIDs in the ID property. Now user edits a row of the grid which results in an AJAX POST call back to my WebApi controller which has a POST parameter MyEntity
:
public void MyMethod(MyEntity myEntity) { ... }
When I check the parameter myEntity, the GUID which is in ID is something different which I had sent from the Client side(front end/ajax call). Say for eg in my ajax call the stringified Json contained "abcd1"
in property _ID
& ID
, but in WebApi's POST
method parameter I get a new GUID in ID & _ID lets say "xyz2"
. Why is this happening? My getter setters are written in a way that if there is a null in _ID then only new GUID will be generated otherwise previous one will be returned.
Also one more question. On Ajax's POST call when the WebApi controller receives the auto-deserialized stringified JSON data as an entity in MyMethod
's parameter myEntity
, are the getter methods executed for the deserialization or setter methods?