Si no desea ir a la base de datos para recuperar todos los campos del objeto, puede crear una nueva instancia de la clase, adjuntarla a un nuevo contexto, eliminarla y guardar los cambios. Esto permite a EF generar el comando de eliminación apropiado.
using (var context = new MyContext())
{
var myObject = new MyObject { ID = 3 };
context.MyObjectSet.Attach(myObject);
context.MyObjectSet.DeleteObject(myObject);
context.SaveChanges();
}
Nota: esto arrojará una excepción de que está tratando de eliminar un objeto que no existe. Eso solo es apropiado si estás seguro de que el objeto existe.
Nota 2: esto supone que haya configurado sus entidades para que la generada eliminar referencias de comandos no hay otros campos que el ID (es decir, no hay propiedades de marca de hora, o cualquier cosa similar que se incluirían en la consulta)
¿Eso realmente funciona? ¡Dulce! Eso será útil. +1 – BZink
Funciona, pero debería haber agregado que solo funciona si el comando de eliminación generado por EF no hace referencia a ningún otro campo que no sea el ID. Si tiene un campo Marca de tiempo, EF lo incluirá en la consulta generada, pero como no conoce el valor que debe usar, la consulta será incorrecta. – hvd