En la Entrada anterior desarrollamos el esqueleto de nuestra aplicación en capas, pueden ver la entrada aquí:
Parte 1
En la parte 2 desarrollaremos la capa Entities y la capa DataAccess.
La clase FacturaDet_Ent contendrá las siguientes propiedades privadas y públicas:
1. Agregar en nuestro proyecto un nuevo item "ADO.NET Entity Data Model" y darle nombre "ModelVentas.edmx", dar clic en agregar.
2. Elegir la opción "Generate from database" y dar clic en siguiente.
3. Configurar una nueva conexión (o utilizar una existente), escoger la conexión creada o existente y darle en la opción "Si, incluir datos sensitivos en la cadena de conexión", darle nombre "EntitiesVentas", luego clic en siguiente.
4. Agregar las tablas de cabecera de factura y detalle, dar nombre al NameSpace "ModelVentas" clic en finalizar.
Parte 1
En la parte 2 desarrollaremos la capa Entities y la capa DataAccess.
Desarrollando la capa Entities:
Lo primero será agregar 2 clases en la capa Entities con nombres:- FacturaCab_Ent
- FacturaDet_Ent
La clase FacturaCab_Ent contendrá las siguientes propiedades privadas y públicas, recuerda escribir "prop" y luego presiona tab 2 veces para que se te genere el código automáticamente.
Private _IdFactura As Integer Public Property IdFactura() As Integer Get Return _IdFactura End Get Set(ByVal value As Integer) _IdFactura = value End Set End Property Private _CodCliente As String Public Property CodCliente() As String Get Return _CodCliente End Get Set(ByVal value As String) _CodCliente = value End Set End Property Private _FechaFact As DateTime Public Property FechaFact() As DateTime Get Return _FechaFact End Get Set(ByVal value As DateTime) _FechaFact = value End Set End Property Private _ValorFact As Double Public Property ValorFact() As Double Get Return _ValorFact End Get Set(ByVal value As Double) _ValorFact = value End Set End Property
La clase FacturaDet_Ent contendrá las siguientes propiedades privadas y públicas:
Private _IdFactura As Integer Public Property IdFactura() As Integer Get Return _IdFactura End Get Set(ByVal value As Integer) _IdFactura = value End Set End Property Private _Secuencia As Integer Public Property Secuencia() As Integer Get Return _Secuencia End Get Set(ByVal value As Integer) _Secuencia = value End Set End Property Private _CodProducto As String Public Property CodProducto() As String Get Return _CodProducto End Get Set(ByVal value As String) _CodProducto = value End Set End Property Private _DescProducto As String Public Property DescProducto() As String Get Return _DescProducto End Get Set(ByVal value As String) _DescProducto = value End Set End Property Private _Cantidad As Double Public Property Cantidad() As Double Get Return _Cantidad End Get Set(ByVal value As Double) _Cantidad = value End Set End Property Private _Precio As Double Public Property Precio() As Double Get Return _Precio End Get Set(ByVal value As Double) _Precio = value End Set End Property Private _Total As Double Public Property Total() As Double Get Return _Total End Get Set(ByVal value As Double) _Total = value End Set End Property
Desarrollando la capa DataAccess:
Lo primero será crear nuestro Entity Model con los siguientes pasos:1. Agregar en nuestro proyecto un nuevo item "ADO.NET Entity Data Model" y darle nombre "ModelVentas.edmx", dar clic en agregar.
2. Elegir la opción "Generate from database" y dar clic en siguiente.
3. Configurar una nueva conexión (o utilizar una existente), escoger la conexión creada o existente y darle en la opción "Si, incluir datos sensitivos en la cadena de conexión", darle nombre "EntitiesVentas", luego clic en siguiente.
4. Agregar las tablas de cabecera de factura y detalle, dar nombre al NameSpace "ModelVentas" clic en finalizar.
5. Notarás que en tu proyecto se generó un Entity model "ModelVentas.edmx" y un archivo de configuración "App.Config".
Ahora hay que crear las clases que tendrán los métodos de acceso al Entity Model y este a su vez ya se encarga de comunicarse con la base de datos para hacer los selects, inserts, updates, deletes, etc
6. Agregar 2 clases
- FacturaCab_Data.vb
- FacturaDet_Data.vb
Escribir en cada clase los métodos para recuperar, grabar, actualizar y borrar información. Para este caso se usará LINQ.
La clase FacturaCab_Data.vb tendrá el siguiente código:
Imports Entities Public Class FacturaCab_Data Public Function RecuperarTodas() As List(Of FacturaCab_Ent) Using OEntidad As New EntitiesVentas Dim query = From facturas In OEntidad.Vtas_Factura_Cab Select facturas Dim lista As New List(Of FacturaCab_Ent) For Each item In query Dim info As New FacturaCab_Ent() info.IdFactura = item.IdFactura info.CodCliente = item.CodCliente info.FechaFact = item.FechaFact info.ValorFact = item.ValorFact lista.Add(info) Next Return lista End Using End Function Public Function BuscarUna(ByVal codigoFactura As Integer) As FacturaCab_Ent Using OEntidad As New EntitiesVentas Dim query = From facturas In OEntidad.Vtas_Factura_Cab Where facturas.IdFactura = codigoFactura Select facturas Return query End Using End Function Public Function Inserta(ByVal factura As FacturaCab_Ent) As Boolean Try Using OEntidad As New EntitiesVentas Dim tbFactura As New Vtas_Factura_Cab tbFactura.IdFactura = factura.IdFactura tbFactura.CodCliente = factura.CodCliente tbFactura.FechaFact = factura.FechaFact tbFactura.ValorFact = factura.ValorFact OEntidad.Vtas_Factura_Cab.AddObject(tbFactura) OEntidad.SaveChanges() End Using Return True Catch ex As Exception Return False End Try End Function Public Function Modifica(ByVal factura As FacturaCab_Ent) As Boolean Try Using OEntidad As New EntitiesVentas() Dim query = (From fa In OEntidad.Vtas_Factura_Cab Where fa.IdFactura = factura.IdFactura Select fa).Single() query.IdFactura = factura.IdFactura query.CodCliente = factura.CodCliente query.FechaFact = factura.FechaFact query.ValorFact = factura.ValorFact OEntidad.SaveChanges() End Using Return True Catch ex As Exception Return False End Try End Function Public Function Elimina(ByVal CodFactura As Integer) As Boolean Try Using OEntidad As New EntitiesVentas Dim recupera = From facturas In OEntidad.Vtas_Factura_Cab Where facturas.IdFactura = CodFactura Select facturas For Each item In recupera OEntidad.Vtas_Factura_Cab.DeleteObject(item) Next OEntidad.SaveChanges() End Using Return True Catch ex As Exception Return False End Try End Function End ClassLa clase FacturaDet_Data.vb tendrá el siguiente código:
Imports Entities Public Class FacturaDet_Data Public Function BuscarUna(ByVal codigoFactura As Integer) As List(Of FacturaDet_Ent) Using OEntidad As New EntitiesVentas Dim query = From facturas In OEntidad.Vtas_Factura_Det Where facturas.IdFactura = codigoFactura Select facturas Dim lista As New List(Of FacturaDet_Ent) For Each item In query Dim det As New FacturaDet_Ent det.IdFactura = item.IdFactura det.Secuencia = item.Secuencia det.CodProducto = item.CodProducto det.DescProducto = item.DescProducto det.Cantidad = item.Cantidad det.Precio = item.Precio det.Total = item.Total lista.Add(det) Next Return lista End Using End Function Public Function Inserta(ByVal Detfactura As List(Of FacturaDet_Ent)) As Boolean Try Using OEntidad As New EntitiesVentas For Each item In Detfactura Dim tbDetFactura As New Vtas_Factura_Det tbDetFactura.IdFactura = item.IdFactura tbDetFactura.Secuencia = item.Secuencia tbDetFactura.CodProducto = item.CodProducto tbDetFactura.DescProducto = item.DescProducto tbDetFactura.Cantidad = item.Cantidad tbDetFactura.Precio = item.Precio tbDetFactura.Total = item.Total OEntidad.Vtas_Factura_Det.AddObject(tbDetFactura) Next OEntidad.SaveChanges() End Using Return True Catch ex As Exception Return False End Try End Function Public Function Modifica(ByVal Detfactura As List(Of FacturaDet_Ent), ByVal CodFactura As Integer) As Boolean Try Using OEntidad As New EntitiesVentas() If Elimina(CodFactura) And Inserta(Detfactura) Then Return True Else Return False End If End Using Return True Catch ex As Exception Return False End Try End Function Public Function Elimina(ByVal CodFactura As Integer) As Boolean Try Using OEntidad As New EntitiesVentas Dim recupera = From facturas In OEntidad.Vtas_Factura_Det Where facturas.IdFactura = CodFactura Select facturas For Each item In recupera OEntidad.Vtas_Factura_Det.DeleteObject(item) Next OEntidad.SaveChanges() End Using Return True Catch ex As Exception Return False End Try End Function End ClassPosteriormente vamos con capa Business Layer en la Parte 3
Comentarios
Publicar un comentario