У меня есть список объектов.Эти объекты и некоторые их свойства отображаются в виде сетки.Пользователь может добавлять, удалять и изменять свойства любого выбранного объекта.
Подход к обновлению выполняется при событии нажатия кнопки сохранения (и не сразу с выполненными действиями).
Каков наилучший способ обновления списка, который может включать добавленные объекты, удаленные объекты и объекты с измененными свойствами в моем Web API 2 с использованием Entity Framework?
Класс клиента:
public class Customer
{
public int CustomerId { get; set; }
public string Name { get; set; }
public string Phone { get; set; }
public string Email { get; set; }
}
Класс клиентов:
Public Class Customers
{
public List<Customer> Customers { get; set; }
}
Метод PUT для клиентов на данный момент:
ResponseType(typeof(void))]
public async Task<IHttpActionResult> PutCustomersViewModel(CustomersViewModel custViewModel)
{
if(!ModelState.IsValid)
return BadRequest(ModelState);
// Not sure how to iterate thru the list and update or add accordingly
_context.Entry(customer).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch(DbEntityValidationException ex)
{
foreach(var entityValidationErrors in ex.EntityValidationErrors)
{
foreach(var validationError in entityValidationErrors.ValidationErrors)
{
System.Diagnostics.Debug.WriteLine("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage);
}
}
}
catch(DbUpdateConcurrencyException)
{
return NotFound();
throw;
}
return StatusCode(HttpStatusCode.NoContent);
}
Я могу удалить все элементы и повторно добавить их, но я думаю, что этонеправильный подход.Есть ли способ сравнить и только добавить / обновить изменение / пропущенные элементы?