Insertar en una Tabla usando Linq2SQL (Linq To SQL)

En un articulo anterior vimos como crear un archivo de tipo kinq2SQL .dbml 

http://www.devjoker.com/contenidos/Articulos/314/Primeros-pasos-con-Linq2SQL.aspx

Ahora veremos una de las operaciones más comunes: insertar datos en una tabla

Supongamos que ya hemos creado el archivo  .dbml  y que este se llama DataClasses1, el código para insertar un registro en la tabla Contact sería algo como esto:

Dim contextoLinq As New DataClasses1DataContext

 

Dim contactoAinsertar As New Contact

contactoAinsertar.FirstName = "Jorge"

contactoAinsertar.LastName = "Garbajosa"

 

contextoLinq.Contacts.InsertOnSubmit(contactoAinsertar)

contextoLinq.SubmitChanges()

 

  1. Declaramos una instancia del contexto (Dim contextoLinq As New DataClasses1DataContext ) esta clase es la que tiene asociada la connectionString con la base de datos real.
  2. Declaramos un objeto de la tabla en la que queramos insertar, en nuestro caso Contact
  3. Establecemos el valor de las propiedades del objeto (los valores de los campos)
  4. Todo campo que no establezcamos será como si no lo hubieramos incluido en la sentencia insert es decir, valdrá o NULL o su valor por defecto en la base de datos.
  5. A través del contexto llamamos al metodo InsertOnSubmit, esto actualiza el contexto de Datos pero no la base de datos real, la base de datos sólo se actualiza cuando confirmamos los cambios llamando a  SubmitChanges()

Ya hemos insertado un registro en base de datos, evidentemente para controlar los errores de inserción bastaría con incluir nuestro código dentro de un bloque try-catch y/o usar alguno de los parametros avanzados para controlar los errores como SubmitChanges(ConflictMode.FailOnFirstConflict) o  SubmitChanges(ConflictMode.ContinueOnConflict.

Como veis una de las mayores ventajas de Linq es que es completamente Object-Oriented y parece una de las caracteristicas más aprovechables de la nueva versión de .net aunque todavía le queda mucho camino por recorrer.

Pablo  Gumpert  Fernandez (aldeamedia)
Insertar en una Tabla usando Linq2SQL (Linq To SQL)
Pablo Gumpert Fernandez (aldeamedia)

Pablo Gumpert es formador y consultor oficial de Microsoft para .NET y SQL server.Lleva desarrollando desde hace más de diez años y durante ese tiempo ha trabajado como programador de videojuegos ,analista informático, experto en seguridad, DBA ... Actualmente se dedica sobre todo a la formación. Su especialidad es la programación en .NET aunque también es experto en MSSQL Server y en el año 2002 fundó su propia empresa colaboradora de diversos centros partner Microsoft.
Fecha de alta:17/01/2008
Última actualizacion:17/01/2008
Visitas totales:12007
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com