¿Cómo elimino una o más filas de mi tabla usando Linq to Entities * sin * recuperar las filas primero?

StackOverflow https://stackoverflow.com/questions/1601350

  •  05-07-2019
  •  | 
  •  

Pregunta

Entiendo que puedo asignar un procedimiento almacenado de eliminación al método de eliminación para un tipo en particular.

Sin embargo, esto requiere pasar un objeto recuperado al método DeleteObject de mi contexto.

Esto es lo suficientemente malo, pero ¿qué pasa si quiero eliminar 2000 filas? ¿Puedo hacer esto con Linq to Entities sin primero recuperar esas 2000 filas de la base de datos y pasar por un bucle llamando a DeleteObject ?

If esa funcionalidad no existe en Linq to Entities, y usted sabe que este es el caso, entonces simplemente dígalo e investigaré otras opciones.

Si no existe directamente, ¿podría lograrlo canalizando un proceso almacenado a través de Linq a las entidades?

¿Fue útil?

Solución

Sí, puedes hacer esto. De esta sugerencia :

// Create an entity to represent the Entity you wish to delete
// Notice you don't need to know all the properties, in this
// case just the ID will do.
Category stub = new Category { ID = 4 };
// Now attach the category stub object to the "Categories" set.
// This puts the Entity into the context in the unchanged state,
// This is same state it would have had if you made the query
ctx.AttachTo("Categories", stub);
// Do the delete the category
ctx.DeleteObject(stub);
// Apply the delete to the database
ctx.SaveChanges();

Consulte la punta completa para detalles y complicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top