Introducción
Language Integrated Query (LINQ) es un proyecto de Microsoft que agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma .NET, inicialmente a los lenguajes Visual Basic .NET y C#.
En el presente post les haré un pequeña introduccion a Linq, les mostrare como mapear una clase y asignar un procedimiento almacenado a el DataContext que hayamos creado.
Manos a la obra!
Lo primero que debemos hacer es tomar una tabla de nuestra base de datos en este caso he usado la tabla Deparment de la base de datos AdvetureWorks (¿No les había dicho que la descargaran?). Dicho esto pasemos a ensuciarnos las manos….
1. Creamos el procedimiento.
Creamos el procedimiento almacenado que sera el encargado de insertar los datos en nuestra base de datos y en la tabla correspondiente.
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[uspDepartmentInsert](@Name nvarchar(50), @GroupName nvarchar(50), @ModifiedDate datetime) AS INSERT INTO HumanResources.Department (Name, GroupName, ModifiedDate) VALUES (@Name, @GroupName, @ModifiedDate)
2. Creamos nuestro proyecto
Bien sea WinForms o ASP.NET, lo importante es que al explorador agreguemos un nuevo item, en categoria escogemos Data y por ultimo Linq To SQL Classes, le colocamos el nombre que deseemos.
3. Configuramos nuestro dbml
Luego de haber insertado el archivo .dbml lo pasamos a configurar, esto es agregarle las clases con las que vamos a trabajar y los métodos que se desean si los tiene (En nuestro caso usaremos 1). Para esto nos conectamos al explorardor de soluciones y desde allí arrastramos la tabla a la superficie de diseño, el diseñador automáticamente nos mapea la tabla en un clases con sus respectivas clases, luego buscamos el procedimiento almacenado que cramos y lo arrastramos a la superficie de métodos, a continuación seleccionamos la clase que acabamos de crear y en sus propiedades buscamos una que diga insert allí personalizamos la clase para que use nuestro procedimiento almacenado. (yo ademas de esto personalice el nombre de metodo para que en vez de “uspDeparmentInsert” quedara “DeparmentInsert”) Listo! tenemos nuestra capa de acceso a datos lista para probar.
4. Pruebas
Ya con todo configurado podemos probar nuestra capa de acceso a datos, para ellos podemos usar el siguiente código:
protected void btnInsert_Click(object sender, EventArgs e) { string Name = txtName.Text; string GroupName = txtGroupName.Text; string ModifiedDate = txtModifiedDate.Text; AdventureWorksDataContext AdventureWorks = new AdventureWorksDataContext(); try { AdventureWorks.DepartmentInsert(Name, GroupName, Convert.ToDateTime(ModifiedDate)); AdventureWorks.SubmitChanges(); } catch (Exception ex) { } }
Happy coding!!