У меня есть С# Entity Framework Контроллер Web API 2. В настоящее время при попытке создать объект с тем же текстом для основного текстового поля с помощью метода POST я возвращаю 409 Conflict error как StatusCode, чтобы указать, что добавление считается дубликатом.
То, что я хотел бы сделать, это вернуть объект на стороне сервера, который также вызвал дублируемую ошибку. Поэтому мне нужно что-то похожее на метод Ok(), но вариант, который возвращает ошибку 409 Conflict как код состояния HTTP вместо кода состояния HTTP OK.
Есть ли такая вещь? Как я могу это сделать? Если я смогу выполнить эту работу, клиенту не придется выполнять последующий вызов Получить на сервер, чтобы получить существующий объект после получения ошибки 409 Conflict.
Здесь текущий метод POST:
public IHttpActionResult PostCanonical(Canonical canonical)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
// Check for duplicate Canonical text for the same app name.
if (db.IsDuplicateCanonical(canonical.AppName, canonical.Text))
{
// It a duplicate. Return an HTTP 409 Conflict error to let the client know.
return StatusCode(HttpStatusCode.Conflict);
}
db.CanonicalSentences.Add(canonical);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = canonical.ID }, canonical);
}