2011-12-05 14 views

risposta

3

Quale versione di Entity Framework si sta utilizzando?

Se si utilizza Entity Framework 4.1 o successivo e si utilizza la classe DbContext, è possibile utilizzare il metodo ExecuteSqlCommand() per inviare un'istruzione DELETE al database. Vedi http://blogs.msdn.com/b/adonet/archive/2011/02/04/using-dbcontext-in-ef-feature-ctp5-part-10-raw-sql-queries.aspx (guarda la sezione Sending Raw Commands to the Database). Questo avrà un aspetto simile:

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

Se si utilizza Entity Framework 4.0 e ObjectContext (invece di DbContext) c'è un metodo simile ExecuteStoreCommand (http://msdn.microsoft.com/en-us/library/ system.data.objects.objectcontext.executestorecommand.aspx).

19

È possibile utilizzare l'oggetto fittizio:

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

A partire da EF 5.0 è necessario utilizzare context.Entities.Remove (entità); invece di context.Entities.DeleteObject (entity); – Gabriel

1

A seconda di quando stai leggendo questo, verificare lo stato di this ticket prima di attuare qualsiasi hack.

+0

Suggerimento interessante. Per favore, vota se puoi. – ygoe

Problemi correlati