Me parece que tengo que recuperar un objeto antes de eliminarlo con el marco de la entidad como se muestra a continuación
var customer = context.Customers.First(c => c.Id == 1);
context.DeleteObject(customer);
context.Savechanges();
Entonces necesito ingresar a la base de datos dos veces. ¿Existe una forma más sencilla?
entity-framework
entity
Jeff
fuente
fuente
Respuestas:
En Entity Framework 6, la acción de eliminación es
Remove
. Aquí hay un ejemplofuente
Attach
? ¿Por qué no soloRemove
ySaveChanges
?Lo mismo que @Nix con un pequeño cambio para ser fuertemente tipado:
Si no desea consultarlo, simplemente cree una entidad y luego elimínela.
fuente
Pregunta similar aquí .
Con Entity Framework existe EntityFramework-Plus (biblioteca de extensiones).
Disponible en NuGet. Entonces puedes escribir algo como:
También es útil para eliminaciones masivas.
fuente
Si no desea consultarlo, simplemente cree una entidad y luego elimínela.
fuente
Estoy usando el siguiente código en uno de mis proyectos:
De esta manera, consultará la base de datos dos veces solo si ocurre una excepción al intentar eliminar el elemento con el ID especificado. Luego, si no se encuentra el elemento, devuelve un mensaje significativo; de lo contrario, simplemente devuelve la excepción (puede manejar esto de una manera más adecuada a su caso usando diferentes bloques de captura para diferentes tipos de excepciones, agregue más verificaciones personalizadas usando bloques if, etc.).
[Estoy usando este código en un proyecto MVC .Net Core / .Net Core con Entity Framework Core.]
fuente
La consulta sql sin procesar es la forma más rápida, supongo
fuente
La respuesta de dwkd funcionó principalmente para mí en el núcleo de Entity Framework, excepto cuando vi esta excepción:
Para evitar la excepción, actualicé el código:
fuente
Una versión más pequeña (en comparación con las anteriores):
fuente
Esta respuesta en realidad se tomó del curso de Scott Allen titulado ASP.NET MVC 5 Fundamentals. Pensé en compartirlo porque creo que es un poco más simple e intuitivo que cualquiera de las respuestas aquí. También tenga en cuenta que según Scott Allen y otros entrenamientos que he realizado, el método de búsqueda es una forma optimizada de recuperar un recurso de la base de datos que puede usar el almacenamiento en caché si ya se ha recuperado. En este código, colección se refiere a un DBSet de objetos. El objeto puede ser cualquier tipo de objeto genérico.
fuente