Soy muy nuevo en linq a sql y no estoy seguro de cómo eliminar realmente un registro.Cómo eliminar en linq a sql?
Así que ha estado buscando a este tutorial
http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
Así Actualizar tienen
NorthwindDataContext db = new NorthwindDataContext();
Product product = db.Products.Single(p => p.ProductName == "Toy 1");
product.UnitPrice == 99;
product.UnitsInStock = 5;
db.SubmitChanges();
Para eliminar tienen
NorthwindDataContext db = new NorthwindDataContext();
var toyProducts = from p in db.Producsts
where p.ProductName.Contains("Toy")
select p;
db.Products.RemoveAll(toyProducts);
db.SubmitChanges();
Así que tengo que consultar cada hora, para obtener el registro para eliminar ese registro? Como que puedo ver cómo lo hago con la actualización, ya que necesita darle un registro que actualizar primero y luego hacer los cambios para que entienda la parte de consulta, pero no con la eliminación.
¿No puede simplemente enviar lo que desea eliminar y lo va a borrar? ¿Por qué primero tienes que conseguirlo y luego decir que se elimine?
¿No es así 2 resultados en la base de datos?
También tengo una relación de clave externa que estoy tratando de poner en práctica. Así que tengo este
public ViewResult(string param1, string param2)
{
Table A = new Table A
A.Field1 = param1;
A.Field2 = param2;
Delete(A);
}
private void Delete(Table A)
{
DbContext.A.DeleteAllOnsubmit(A.TableB);
DbContext.A.DeleteAllOnSubmit(A.TableC);
DbContext.A.DeleteOnSubmit(A);
}
así que esto no se trata con este mensaje "No se puede eliminar una entidad que no se ha unido."
Entonces puedo ver por qué las primeras 2 líneas fallarían en el método de eliminación, ya que hice un nuevo objeto y no hay nada en el objeto que tenga información sobre TableB y TableC.
Sin embargo, no puedo ver por qué la última línea aún falla, incluso si las otras 2 líneas no están allí.
Al igual que pensé que funcionaría, tomaría el objeto de clase de la Tabla A que pasé y mire a través de la tabla para ver la información que contiene. Sin embargo, no parece ser el caso.
¿Debo extraer la información y hacer una consulta para obtenerla y luego eliminarla, como en el ejemplo?
También, ¿cuál es la diferencia entre removeAll() y decir DeleteAllOnSubmit().
Como dije, soy nuevo en linq to sql y no he podido sentarme y leer un libro debido a limitaciones de tiempo. Una vez que tenga más tiempo, probablemente leeré un libro.
Gracias
Lo he intentado pero parece intentar usar todos los valores en el objeto para ubicar el registro. Error con la fila no encontrada o ha sido modificada. Ideas? – drizzie
@drizzie - ¿Puso solo la clave en la instancia de su entidad? –
Sí, mi código es idéntico al suyo. – drizzie