Я новичок в ASP.NET MVC 5 Web Api 2 с подходом на основе кода и автоматом, у меня есть модель Currency и я создал для нее DTO (CurrencyDto) и хочу создать Api для изменения атрибутов существующих валют (некоторые атрибуты не все атрибуты) , после поиска в Интернете я обнаружил, что метод PATCH может изменять некоторые атрибуты модели вместо метода PUT, который должен быть нацелен на все атрибуты модели.Мой код выглядит следующим образом. Модель валюты:
public class Currency
{
public int ID { get; set; }
[Required]
public string CurrencyName { get; set; }
[Required]
public string CurrencyDescription { get; set; }
}
CurrencyDto
public int ID { get; set; }
public string CurrencyName { get; set; }
public string CurrencyDescription { get; set; }
Контроллер API
[HttpPatch]
public IHttpActionResult UpdateCurrency(int id, CurrencyDto currencyDto)
{
if (!ModelState.IsValid)
return BadRequest();
var currencyinDB = _context.Currencies.SingleOrDefault(c => c.ID == id);
if (currencyinDB == null)
return NotFound();
currencyDto.ID = currencyinDB.ID;
Mapper.Map(currencyDto, currencyinDB);
_context.SaveChanges();
return Ok();
}
Профиль отображения
public MappingProfile()
{
Mapper.CreateMap<Currency, CurrencyDto>();
Mapper.CreateMap<CurrencyDto, Currency>();
}
проблема заключается в том, что при обновлении валюты и изменении только одного атрибута (CurrencyDescrition) появляется внутренняя ошибка сервера 500. В чем здесь может быть проблема?Как подготовить API для редактирования некоторых атрибутов модели (не всех)?