デルタ ラッパーを使用して、Web API コントローラー アクションを部分的に更新しようとしています。
私はそのようなモデルを持っています:
public class Person
{
public Guid PersonId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public bool IsActive { get; set; }
public int NumVacationDays { get; set; }
public double Salary { get; set; }
}
私はそのようなAPIコントローラを持っています:
public void Put(Delta<Person> person)
{
var p = person.GetEntity();
Person existingPerson = _repository.Get(p.PersonId);
person.Patch(existingPerson);
_repository.Update();
return;
}
そのようなWeb APIへの呼び出しを行います(フィドラーを使用)
url: http://localhost:49933/api/Person (PUT)
Response Body
{
"PersonId": "b269c49f-8a90-41d6-b102-7cfba3812b1c",
"FirstName": "sample string 2",
"LastName": "sample string 3",
"IsActive": true,
"NumVacationDays": 5,
"Salary": 6.1
}
The controller is hit and al
l NumVacationDays (0) と PersonId (デフォルトは 00000000-0000-0000-0000-000000000000) 以外のデータが入力されます。
GUID と int フィールドが json から読み込まれない理由を知っている人はいますか?