Operaciones CRUD (Create, read, update and delete) con Linq (es-ES)
Basado en este articulo
En LINQ to SQL, las operaciones Insert, Update y Delete se realizan agregando, cambiando y quitando objetos en el modelo de objetos. De forma predeterminada, LINQ to SQL convierte estas acciones a SQL y envía los cambios a la base de datos.
LINQ to SQL proporciona la máxima flexibilidad para manipular y conservar los cambios realizados en los objetos. En cuanto están disponibles los objetos entidad (ya sea recuperándolos a través de una consulta o construyéndolos nuevamente), puede cambiarlos como los objetos normales de la aplicación. Es decir, puede cambiar sus valores, agregarlos a las colecciones y quitarlos de las mismas. LINQ to SQL realiza un seguimiento de los cambios y está listo para volver a transmitirlos a la base de datos cuando llame al método SubmitChanges().
En el siguiente ejemplo se utilizan las clases Customer y Order de la base de datos de ejemplo Northwind. Para no extendernos demasiado, no incluimos las definiciones de clase.
Northwnd db = new Northwnd(@"c:\Northwnd.mdf");
C#
// Query para un cliente especifico.
var clien =
(from x in db.Customers
where x.CustomerID == "ALFKI"
select x).First();
// Cambia el numero del contacto.
clien.ContactName = "New Contact";
// Crea y agrega una nueva orden a la coleccion de ordenes.
Order ord = new Order { OrderDate = DateTime.Now };
clien.Orders.Add(ord);
// Eliminar una orden existente.
Order ord0 = clien.Orders[0];
// Removiendola de la tabla tambien se remueve de la lista de usuarios.
db.Orders.DeleteOnSubmit(ord0);
// Llama al DataContext para guardar todos los cambios.
db.SubmitChanges();
Al llamar al metodo SubmitChanges(), LINQ to SQL genera y ejecuta automáticamente la cosulta SQL necesarios para volver a transmitir los cambios a la base de datos.