 <p>The routine dont validate entity, but fill the pre-existent entity.</p> <pre><code> protected virtual void UpdateModel&lt;T&gt;(T original, bool overrideForEmptyList = true) { var json = ControllerContext.Request.Content.ReadAsStringAsync().Result; UpdateModel&lt;T&gt;(json, original, overrideForEmptyList); } private void UpdateModel&lt;T&gt;(string json, T original, bool overrideForEmptyList = true) { var newValues = JsonConvert.DeserializeObject&lt;Pessoa&gt;(json); foreach (var property in original.GetType().GetProperties()) { var isEnumerable = property.PropertyType.GetInterfaces().Any(t =&gt; t.IsGenericType &amp;&amp; t.GetGenericTypeDefinition() == typeof(IEnumerable&lt;&gt;)); if (isEnumerable &amp;&amp; property.PropertyType != typeof(string)) { var propertyOriginalValue = property.GetValue(original, null); if (propertyOriginalValue != null) { var propertyNewValue = property.GetValue(newValues, null); if (propertyNewValue != null &amp;&amp; (overrideForEmptyList || ((IEnumerable&lt;object&gt;)propertyNewValue).Any())) { property.SetValue(original, null); } } } } JsonConvert.PopulateObject(json, original); } public void Post() { var sample = Pessoa.FindById(12); UpdateModel(sample); } </code></pre>