¿Devolver un objeto junto con un error de conflicto 409 en una llamada POST Web API 2 respaldada por Entity Framework?

Tengo un marco de entidad C #Controlador web API 2. Actualmente, cuando se realiza un intento a través deENVIAR método para crear un objeto con el mismo texto para el campo de texto principal, devuelvo un409 Error de conflicto como unCódigo de estado resultado para indicar que la adición se considera un duplicado.

Lo que me gustaría hacer es devolver también el objeto del lado del servidor que activó el error duplicado. Así que necesito algo parecido alOkay() método pero una variante que devuelve un409 conflicto error como el código de estado HTTPen lugar de un código de estado HTTP OK.

¿Hay tal cosa? ¿Cómo puedo hacer esto? Si puedo hacer que esto funcione, el cliente no tiene que hacer un posteriorObtener llame al servidor para obtener el objeto existente después de recibir un error de conflicto 409.

Aquí está el método POST actual:

    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's 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);
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta