¿Cómo puedo ignorar una excepción DbUpdateConcurrencyException con mi código de Entity Framework?

¿Hay alguna manera de decirle a EF que no se preocupe por el número de filas aDELETE oUPDATE ¿hacer o no hacer?

Estoy tratando de eliminar una fila de la base de datos, pero debido a que la fila no existe, EF lanza una excepción:DbUpdateConcurrencyException .. diciendo 0 filas fueron afectadas. Esto es correcto -> no se eliminaron filas. Pero eso está totalmente bien ... porque no hay datos.

Realmente no quiero hacer un viaje de ida y vuelta a la base de datos para ver si esa fila existe ... y si es así ... intente eliminarla.

Si trato de tragar la excepción en untry / catch bloque, entonces el resto de los elementos que se eliminarán NO se envían a la base de datos, cuando intentoSaveChanges() ... cual es malo

p.ej

Delete(new Foo(1));
Delete(new Foo(2));
Delete(new Foo(3));
SaveChanges(); // <-- Throws the exception.

// DB Trace : DELETE FROM Foo WHERE Id = 1;

y eso es todo ... no hay rastro que muestre el registro 2 o 3 tratando de eliminarse ... porque la excepción detiene todo:

¿Algunas ideas

ACTUALIZA

CómoDelete ¿trabajo? Aquí está el código ... (simplificado y fuertemente tipado)

public void Delete(Foo foo)
{
    if (foo == null)
    {
        throw new ArgumentNullException("foo");
    }

    Foo attachedEntity = Context.Set<Foo>().Local.FirstOrDefault(x => x.Id > 0);

    if (attachedEntity != null)
    {
        // Entity already in object graph - remove entity.
        Context.Set<Foo>().Remove(attachedEntity);
    }
    else
    {
        // Entity not in object graph, attach and set EntityState to Deleted.
        Context.Entry(foo).State = EntityState.Deleted;
    }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta