2011-12-05 18 views

Respuesta

3

¿Qué versión de Entity Framework estás usando?

Si está utilizando Entity Framework 4.1 o superior, y utiliza la clase DbContext, puede usar el método ExecuteSqlCommand() para enviar una declaración DELETE a la base de datos. Consulte http://blogs.msdn.com/b/adonet/archive/2011/02/04/using-dbcontext-in-ef-feature-ctp5-part-10-raw-sql-queries.aspx (consulte la sección Mandatos sin procesar a la base de datos). Esto será algo como:

DbContext ctx = ... get your DbContext somehow... 
ctx.Database.ExecuteSqlCommand("DELETE FROM Foo WHERE FooID = 17"); 

Si está utilizando Entity Framework 4.0 y ObjectContext (en lugar de DbContext) hay un método ExecuteStoreCommand similar (http://msdn.microsoft.com/en-us/library/ system.data.objects.objectcontext.executestorecommand.aspx).

19

Puede utilizar el objeto ficticio:

var entity = new YourEntity { Key = yourKey }; 
context.Entities.Attach(entity); 
context.Entities.DeleteObject(entity); 
context.SaveChanges(); 
+7

A partir de EF 5.0, necesita utilizar context.Entities.Remove (entidad); en lugar de context.Entities.DeleteObject (entidad); – Gabriel

1

Dependiendo de cuando usted está leyendo esto, verificar el estado de this ticket antes de implementar cualquier hacks.

+0

Sugerencia interesante. Por favor vota por eso si puedes. – ygoe

Cuestiones relacionadas