Hola a todos, en esta ocasión quisiera mostrarles un poco de como es el uso de Entity Framework con Visual Studio 2008 y SQL Server 2008 R2.
Estoy asumiendo a que tienen conocimiento básico de que es Entity Framework y SQL Server por lo que pasare directamente a la implementación.
Imaginemos que tenemos que hacer el mantenimiento de los datos de los clientes de la empresa en donde estamos desarrollando, nuestra tarea es crear un formulario donde podamos hacer el mantenimiento de los datos del cliente, por lo tanto necesitamos una tabla con los campos necesarios en SQL Server. Entonces vamos al SQL Management y hacemos login, creamos una base de datos llamada "PruebaEF" y corremos el siguiente script para crear la tabla clientes:
USE [PruebaEF]
GO
/****** Object: Table [dbo].[Clientes] Script Date: 09/07/2012 09:23:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Clientes](
[ClienteID] [int] IDENTITY(1,1) NOT NULL,
[Nombres] [nvarchar](60) NOT NULL,
[Apellidos] [nvarchar](60) NOT NULL,
[Dni] [nvarchar](8) NOT NULL,
[Telefono] [nvarchar](9) NOT NULL,
[Correo] [nvarchar](50) NOT NULL,
[FechaCreacion] [datetime] NOT NULL,
[FechaModificacion] [datetime] NULL,
CONSTRAINT [PK_Clientes] PRIMARY KEY CLUSTERED
(
[ClienteID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Una vez que tenemos la tabla creada, entonces creamos nuestro proyecto Windows Form Application en Visual Studio 2008.
Al formulario que nos sale por defecto, le ponemos un menú, un datagridview en la parte superior y Los controles necesarios para el ingreso de la data, también le cambiamos el nombre a "frmClientes" de manera que nos quede de la siguiente forma:
Ahora pasemos al grano, vamos a crear el entity framework, le damos click derecho al proyecto después Add/New Item escogemos Entity Framework Model le asignamos un nombre en este caso ModelBD y le damos click en Add, después nos sale otra pantalla y escogemos Generar desde Base de Datos, le damos siguiente, creamos una nueva conexión escogemos SQL Server, introducimos el nombre de nuestro servidor de base de datos y elegimos tipo de autenticación en mi caso sera Windows Authentication, testeamos la conexión que todo este bien y le damos siguiente, ahora nos aparece una pantalla mostrándonos los objetos que queremos mapear en este caso le damos a tablas y escogemos la tabla cliente que es la que vamos a usar y por ultimo le damos click en finish ahora ya nos debe haber creado nuestro modelo Entity Framework.
Acontinuación muestro una secuencia de imagenes referente a los pasos comentados arriba:
Una vez que tenemos el modelo de Entity Framework creado, procedemos crear la clase entidad donde estarán los get y set ; y otra clase encargada de las operaciones a realizar en la tabla clientes.
Primero creamos la clase entidad, añadimos una carpeta llamada "Entidades" y dentro de esta carpeta creamos la clase "ClienteEntidad" y escribimos el codigo necesario, nos debe quedar de la siguiente manera:
Public Class ClienteEntidad
Private mClienteID As Integer
Private mNombres As String
Private mApellidos As String
Private mDni As String
Private mTelefono As String
Private mCorreo As String
Public Property ClienteID() As Integer
Get
Return mClienteID
End Get
Set(ByVal value As Integer)
mClienteID = value
End Set
End Property
Public Property Nombres() As String
Get
Return mNombres
End Get
Set(ByVal value As String)
mNombres = value
End Set
End Property
Public Property Apellidos() As String
Get
Return mApellidos
End Get
Set(ByVal value As String)
mApellidos = value
End Set
End Property
Public Property Dni() As String
Get
Return mDni
End Get
Set(ByVal value As String)
mDni = value
End Set
End Property
Public Property Telefono() As String
Get
Return mTelefono
End Get
Set(ByVal value As String)
mTelefono = value
End Set
End Property
Public Property Correo() As String
Get
Return mCorreo
End Get
Set(ByVal value As String)
mCorreo = value
End Set
End Property
End Class
Una vez creada la clase entidad (encargada de recoger la data) creamos la clase encargada de las operaciones del cliente, añadimos una carpeta llamada "Clases" y creamos una clase llamada "Cliente".
Creamos los métodos para insertar y listar los cliente:
Public Class Cliente
Public Function InsertarCliente(ByVal oCliEnt As ClienteEntidad) As Boolean
Dim ModelBD As New PruebaEFEntities 'instanciamos modelo de entity framework
'indicamos que vamos a usar nuestro modelo de entity framewok
Using ModelBD
'instanciamos una clase tabla del modelo
'en este caso la tabla clientes
Dim oCli As New Clientes
'llenamos el objeto con los datos de
'cliente entidad pasado como parametro
oCli.Nombres = oCliEnt.Nombres
oCli.Apellidos = oCliEnt.Apellidos
oCli.Dni = oCliEnt.Dni
oCli.Correo = oCliEnt.Correo
oCli.Telefono = oCliEnt.Telefono
oCli.FechaCreacion = DateTime.Now
'agregamos al modelo EF
ModelBD.AddToClientes(oCli)
'vemos que este abierta la conexion
If ModelBD.Connection.State = ConnectionState.Closed Then _
ModelBD.Connection.Open()
'agregamos al modelo EF
Return (ModelBD.SaveChanges() > 0) 'retrnamos true si se hizo algun cambio
End Using
End Function
Public Function ListarClientes() As List(Of Clientes)
Dim ModelBD As New PruebaEFEntities 'instanciamos modelo de entity framework
'indicamos que vamos a usar nuestro modelo de entity framewok
Using ModelBD
'realizamos query para listar los clientes con linq to entities
Dim query = From c In ModelBD.Clientes _
Select c
'retornamos la lista de clientes
Return query.ToList()
End Using
End Function
End Class
Ahora pasamos a codificar los eventos del formulario, en el evento de formulario Load cargamos el datagridview con los clientes y también codificamos el evento Click del menú guardar para que haga la inserción del cliente, en estos eventos simplemente vamos a referenciar los métodos creados en la clase cliente, nuestro código debe quedarnos así:
Public Class frmClientes
Dim oClienteFun As New Cliente 'instanciamos clase cliente que contiene los metodos
Private Sub frmClientes_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'cargamos el datagridview con los clientes
Me.dgClientes.DataSource = oClienteFun.ListarClientes
End Sub
Private Sub mnuGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuGuardar.Click
Dim oClienteEntidad As New ClienteEntidad 'instanciamos entidad cliente
'llenamos entidad con los datos ingresados
oClienteEntidad.Nombres = txtNombres.Text
oClienteEntidad.Apellidos = txtApellidos.Text
oClienteEntidad.Correo = txtEmail.Text
oClienteEntidad.Dni = txtDni.Text
oClienteEntidad.Telefono = txtTelefono.Text
'llamamos a la funcion que inserta el cliente
If (oClienteFun.InsertarCliente(oClienteEntidad) = True) Then
'mostramos mensaje de operacion exitosa
MessageBox.Show("Cliente registrado satisfactoriamente!")
'cargamos datagridview para que muestre los cambios
Me.dgClientes.DataSource = oClienteFun.ListarClientes
End If
End Sub
End Class
Con esto ya debería funcionar nuestros métodos de insertar y listar con Entity Framework, aquí unas imágenes de como queda:
Cabe recalcar que la funcionalidad del formulario no esta codificada, solo la parte del insert y muestra de datos que nos sirve como muestra de uso de Entity Framework, ya en la siguiente entrada veremos la parte de modificación y eliminación de data; le adjunto el proyecto para que lo puedan descargar http://www.4shared.com/rar/AQ1zgRmw/Proyecto.html?refurl=d1url
Cualquier duda me escriben nomas, espero les sea útil este mini tutorial.
Gracias
Estoy asumiendo a que tienen conocimiento básico de que es Entity Framework y SQL Server por lo que pasare directamente a la implementación.
Imaginemos que tenemos que hacer el mantenimiento de los datos de los clientes de la empresa en donde estamos desarrollando, nuestra tarea es crear un formulario donde podamos hacer el mantenimiento de los datos del cliente, por lo tanto necesitamos una tabla con los campos necesarios en SQL Server. Entonces vamos al SQL Management y hacemos login, creamos una base de datos llamada "PruebaEF" y corremos el siguiente script para crear la tabla clientes:
USE [PruebaEF]
GO
/****** Object: Table [dbo].[Clientes] Script Date: 09/07/2012 09:23:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Clientes](
[ClienteID] [int] IDENTITY(1,1) NOT NULL,
[Nombres] [nvarchar](60) NOT NULL,
[Apellidos] [nvarchar](60) NOT NULL,
[Dni] [nvarchar](8) NOT NULL,
[Telefono] [nvarchar](9) NOT NULL,
[Correo] [nvarchar](50) NOT NULL,
[FechaCreacion] [datetime] NOT NULL,
[FechaModificacion] [datetime] NULL,
CONSTRAINT [PK_Clientes] PRIMARY KEY CLUSTERED
(
[ClienteID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Una vez que tenemos la tabla creada, entonces creamos nuestro proyecto Windows Form Application en Visual Studio 2008.
Al formulario que nos sale por defecto, le ponemos un menú, un datagridview en la parte superior y Los controles necesarios para el ingreso de la data, también le cambiamos el nombre a "frmClientes" de manera que nos quede de la siguiente forma:
Ahora pasemos al grano, vamos a crear el entity framework, le damos click derecho al proyecto después Add/New Item escogemos Entity Framework Model le asignamos un nombre en este caso ModelBD y le damos click en Add, después nos sale otra pantalla y escogemos Generar desde Base de Datos, le damos siguiente, creamos una nueva conexión escogemos SQL Server, introducimos el nombre de nuestro servidor de base de datos y elegimos tipo de autenticación en mi caso sera Windows Authentication, testeamos la conexión que todo este bien y le damos siguiente, ahora nos aparece una pantalla mostrándonos los objetos que queremos mapear en este caso le damos a tablas y escogemos la tabla cliente que es la que vamos a usar y por ultimo le damos click en finish ahora ya nos debe haber creado nuestro modelo Entity Framework.
Acontinuación muestro una secuencia de imagenes referente a los pasos comentados arriba:
Una vez que tenemos el modelo de Entity Framework creado, procedemos crear la clase entidad donde estarán los get y set ; y otra clase encargada de las operaciones a realizar en la tabla clientes.
Primero creamos la clase entidad, añadimos una carpeta llamada "Entidades" y dentro de esta carpeta creamos la clase "ClienteEntidad" y escribimos el codigo necesario, nos debe quedar de la siguiente manera:
Public Class ClienteEntidad
Private mClienteID As Integer
Private mNombres As String
Private mApellidos As String
Private mDni As String
Private mTelefono As String
Private mCorreo As String
Public Property ClienteID() As Integer
Get
Return mClienteID
End Get
Set(ByVal value As Integer)
mClienteID = value
End Set
End Property
Public Property Nombres() As String
Get
Return mNombres
End Get
Set(ByVal value As String)
mNombres = value
End Set
End Property
Public Property Apellidos() As String
Get
Return mApellidos
End Get
Set(ByVal value As String)
mApellidos = value
End Set
End Property
Public Property Dni() As String
Get
Return mDni
End Get
Set(ByVal value As String)
mDni = value
End Set
End Property
Public Property Telefono() As String
Get
Return mTelefono
End Get
Set(ByVal value As String)
mTelefono = value
End Set
End Property
Public Property Correo() As String
Get
Return mCorreo
End Get
Set(ByVal value As String)
mCorreo = value
End Set
End Property
End Class
Una vez creada la clase entidad (encargada de recoger la data) creamos la clase encargada de las operaciones del cliente, añadimos una carpeta llamada "Clases" y creamos una clase llamada "Cliente".
Creamos los métodos para insertar y listar los cliente:
Public Class Cliente
Public Function InsertarCliente(ByVal oCliEnt As ClienteEntidad) As Boolean
Dim ModelBD As New PruebaEFEntities 'instanciamos modelo de entity framework
'indicamos que vamos a usar nuestro modelo de entity framewok
Using ModelBD
'instanciamos una clase tabla del modelo
'en este caso la tabla clientes
Dim oCli As New Clientes
'llenamos el objeto con los datos de
'cliente entidad pasado como parametro
oCli.Nombres = oCliEnt.Nombres
oCli.Apellidos = oCliEnt.Apellidos
oCli.Dni = oCliEnt.Dni
oCli.Correo = oCliEnt.Correo
oCli.Telefono = oCliEnt.Telefono
oCli.FechaCreacion = DateTime.Now
'agregamos al modelo EF
ModelBD.AddToClientes(oCli)
'vemos que este abierta la conexion
If ModelBD.Connection.State = ConnectionState.Closed Then _
ModelBD.Connection.Open()
'agregamos al modelo EF
Return (ModelBD.SaveChanges() > 0) 'retrnamos true si se hizo algun cambio
End Using
End Function
Public Function ListarClientes() As List(Of Clientes)
Dim ModelBD As New PruebaEFEntities 'instanciamos modelo de entity framework
'indicamos que vamos a usar nuestro modelo de entity framewok
Using ModelBD
'realizamos query para listar los clientes con linq to entities
Dim query = From c In ModelBD.Clientes _
Select c
'retornamos la lista de clientes
Return query.ToList()
End Using
End Function
End Class
Ahora pasamos a codificar los eventos del formulario, en el evento de formulario Load cargamos el datagridview con los clientes y también codificamos el evento Click del menú guardar para que haga la inserción del cliente, en estos eventos simplemente vamos a referenciar los métodos creados en la clase cliente, nuestro código debe quedarnos así:
Public Class frmClientes
Dim oClienteFun As New Cliente 'instanciamos clase cliente que contiene los metodos
Private Sub frmClientes_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'cargamos el datagridview con los clientes
Me.dgClientes.DataSource = oClienteFun.ListarClientes
End Sub
Private Sub mnuGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuGuardar.Click
Dim oClienteEntidad As New ClienteEntidad 'instanciamos entidad cliente
'llenamos entidad con los datos ingresados
oClienteEntidad.Nombres = txtNombres.Text
oClienteEntidad.Apellidos = txtApellidos.Text
oClienteEntidad.Correo = txtEmail.Text
oClienteEntidad.Dni = txtDni.Text
oClienteEntidad.Telefono = txtTelefono.Text
'llamamos a la funcion que inserta el cliente
If (oClienteFun.InsertarCliente(oClienteEntidad) = True) Then
'mostramos mensaje de operacion exitosa
MessageBox.Show("Cliente registrado satisfactoriamente!")
'cargamos datagridview para que muestre los cambios
Me.dgClientes.DataSource = oClienteFun.ListarClientes
End If
End Sub
End Class
Con esto ya debería funcionar nuestros métodos de insertar y listar con Entity Framework, aquí unas imágenes de como queda:
Cabe recalcar que la funcionalidad del formulario no esta codificada, solo la parte del insert y muestra de datos que nos sirve como muestra de uso de Entity Framework, ya en la siguiente entrada veremos la parte de modificación y eliminación de data; le adjunto el proyecto para que lo puedan descargar http://www.4shared.com/rar/AQ1zgRmw/Proyecto.html?refurl=d1url
Cualquier duda me escriben nomas, espero les sea útil este mini tutorial.
Gracias
Comentarios
Publicar un comentario