29 jul 2012

Linq to SQL Insert

Tratando de aprender cosas nuevas, recientemente he intentado hacer algunos experimentos con LINQ. Aquí un ejemplo de como insertar un registro simple.

Creamos un proyecto de tipo consola. A este le añadimos un "New Item" de tipo "LINQ to SQL Classes", en este momento se nos abre un diseñador de clases. Para evitarnos la fatiga, lo que vamos a hacer es irnos al "Server Explorer"  abrir una base de datos y arrastrar una tabla sobre el diseñador. Para este ejemplo yo arrastré una tabla que tiene un campo Id que corresponde a su llave primaria y que ademas es un identity, y un campo descripción.

Una vez hecho esto lo siguiente es intentar incluir un registro por medio de linq, lo cual es muy simple.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
  
    class Program
    {
        static void Main(string[] args)
        {
            string connstr = @"Data Source=MiServer;Initial Catalog=miBD;Integrated Security=True";
            DataClasses1DataContext dc = new DataClasses1DataContext (connstr);

            TablaPrueba tb = new TablaPrueba ();
            tb.Descripcion = "Nuevo Registro";
            dc.TablaPruebas.InsertOnSubmit (tb);
            dc.SubmitChanges();
            Console.WriteLine ("El id del registro insertado es {0}",tb.Id);
            Console.ReadLine ();
        }
    }
}

Como podemos ver lo que hacemos es utilizar una instancia de la clase DataClasses1DataContextal (DataClases1 es el nombre que le dimos a las clases de Linq To Sql) a la que le pasamos un string de conexión correspondiente a la base de datos sobre la cual vamos a trabajar. Usamos la clase que se creó al arrastrar la tabla para llenar sus propiedades (en este caso TablaPrueba) y, finalmente, usamos los métodos InsertOnSubmit y SubmitChanges para guardar los datos. Al terminar la operación podemos extraer el id creado automáticamente por la base de datos el cual queda en el mismo objeto correspondiente al registro.


Ya con este ejemplo podemos darnos cuenta lo simple que es trabajar con Linq To Sql

Roy {aka. Foy}

Autor & Editor

Desarrallador y líder técnico, con experiencia en tecnologías Microsoft desde los tiempos del VB6 y el asp clásico hasta el .Net Core, pasando por COM+, javascript, angularjs, Ionic, xaml, cordova, MVC, Web Api, Sql Server, Oracle... . Ávido lector, apasionado programador.