2009-09-08 14 views
6

Puedo ser completamente ciego y estúpido, pero no puedo encontrar ningún método generado por ADO.NET Entity Data Model que de alguna manera elimine filas de mi tabla. No quería crear una consulta personalizada. Entonces, ¿cómo hago eso? Por favor ayuda.ado.net entity framework eliminar filas

No tengo el método DeleteOnSubmit ... no sé por qué. Este es el código que quería usar.

var deleteOrderDetails = 
from details in db.OrderDetails 
where details.OrderID == 11000 
select details; 

foreach (var detail in deleteOrderDetails) 
{ 
db.OrderDetails.DeleteOnSubmit(detail); 
} 

db.SubmitChanges(); 

Respuesta

10

Un par de alteraciones necesario:

db.DeleteObject(detail); 

y

db.SaveChanges(); 

Bondad,

Dan

PS: ¿Ha estado usando LINQ a SQL y luego intercambiado a la Entidad F ramework?

+0

Sí. Ese sería el caso. Además, ¿puedo eliminar varias filas a la vez con esto? – Trimack

+0

Puede hacer mutiple eliminar objetos por SaveChanges, sí :) –

+0

No, lo que quise decir es si pudiera hacer dv.DeleteObject (deleteOrderDetails); ?? – Trimack

5

Ésta es otra manera (gracias a this answer)

que se supone que tiene la tabla Orders y OrderDetails está relacionado con él a través OrderID.

var order = db.Orders.FirstOrDefault(o=> o.OrderID == 11000); 
if(order != null) 
{ 
    order.OrderDetails.Clear(); 
    db.SaveChanges(); 
} 

Esto debería eliminar todos los detalles de la orden asociados con esa orden.

corregir: fijo el código

Cuestiones relacionadas