Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 ADO.Net Entity Framework

Preview:

DESCRIPTION

Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 ADO.Net Entity Framework. ADO.Net Entity Framework. - PowerPoint PPT Presentation

Citation preview

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Lenguaje de Programación .Net

LDP3501: Visual Studio .Net 2008

ADO.Net Entity Framework.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkUna de las metas principales de la nueva versión de ADO.NET es elevar el nivel de abstracción de la programación contra fuentes de datos a través de la eliminación del "vacío" existente entre los modelos de datos y los lenguajes de programación. Y ¿Cómo es posible esto? A través de dos innovaciones claves de la plataforma: LINQ y ADO.NET Entity Framework.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkCaracterísticas• Es un Framework que permite manipular y acceder

a los datos como clases .NET.• Permite realizar un modelado de datos a nivel

conceptual (aplicaciones y esquemas de BD).• Permite una mejor interacción de los datos con el

entorno .NET: Se interactúa con objetos, frente a hacerlo con filas y columnas.

• Permite describir los datos de la aplicación e interactuar con ellos a un nivel de abstracción conceptual claramente alineado con el concepto de implementación de aplicaciones de negocio.

• Se apoya en LINQ para definir las consultas a objetos del esquema EDM (Entity Data Model).

• Independiza las aplicaciones de el esquema de BD subyacente.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkArquitectura

DataSource

La mencionada independencia con el esquema y la tecnología de Base de Datos, se logra básicamente en una arquitectura dividida en dos partes diferenciadas, Modelo de Datos y Modelo Conceptual (EDM).

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkArquitectura

DataSource

Fuente de DatosCorresponde al almacén de datos físicos.

Proveedores de DatosLos datos se acceden mediante un proveedor de datos ADO.Net.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkArquitectura

DataSource

Modelo de Entidades de Datos

• Lenguaje de Definición del Esquema Conceptual: Declara y define las entidades, asociaciones y herencia.

• Lenguaje de Definición del Esquema del Almacén: Metadatos que describen el contenedor del almacenamiento (base de datos).

• Lenguaje de Especificación de Mapeo: Mapa de las entidades en el CSDL a las tablas descritas en el SSDL.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkArquitectura

DataSource

Entidad ClienteProveedor administrado por ADO.Net que permite el acceso a los datos descritos en el EDM. Es similar a un SQLClient u OracleClient. Provee de un conjunto de componentes como EntityCommand, EntityConnection y EntityTransaction.

Servicios de ObjetosEste componente permite consultar, insertar, actualizar y eliminar datos, expresados como objetos CLR fuertemente tipados que son instancias de los tipos de entidades.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkArquitectura

DataSource

Entity SQL Es un derivado de Transact-SQL, diseñado para consultar y manipular entidades definidas en el Modelo de Datos de la entidad.

LINQ to EntitiesSe trata de un lenguaje de consulta fuertemente tipada, para consultas contra entidades definidas en el Modelo de Datos de la entidad.

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkDefiniendo un Modelo de Entidades

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkDefiniendo un Modelo de Entidades

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkDefiniendo un Modelo de Entidades

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkDefiniendo un Modelo de Entidades

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkConsulta de entidades

/* Instancia del modelo de entidades creado */ EmpresasEntities modeloEmpresas = new EmpresasEntities();

/* Consulta de entidades */var empleados = (from empleado in modeloEmpresas.Empleado select empleado);

foreach (Empleado emp in empleados) { /* Carga la empresa referenciada */ emp.EmpresaReference.Load();

/* Muestra la información del Empleado */ Console.WriteLine("Rut: {0}, Nombre : {1} {2}, Empresa : {3} ", emp.Rut, emp.Nombres, emp.Apellidos, emp.EmpresaReference.Value.RazonSocial); }

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkActualización de entidades /* Consulta para obtener la entidad que se actualizará */ /* Empleado Bart Wall */ Empleado empleadoModificado = modeloEmpresas.Empleado.First ( emp => emp.Rut == 1005811 );

Console.WriteLine("Nombre Empleado = {0} {1}", empleadoModificado.Nombres, empleadoModificado.Apellidos);

/* Cambia su Apellido y actualiza el modelo */ empleadoModificado.Apellidos = "Simpson";

modeloEmpresas.SaveChanges();

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkCreación de entidades /* Crea la nueva instancia del empleado */ Empleado empleadoNuevo = new Empleado(); empleadoNuevo.Rut = 12345678; empleadoNuevo.Dv = "9"; empleadoNuevo.Nombres = "Juan"; empleadoNuevo.Apellidos = "Perez";

/* Carga y asigna la empresa respectiva */ Empresa empresa = modeloEmpresa.Empresa.First(e => e.Rut == 98691599); empleadoNuevo.Empresa = empresa; //Accede por la Entidad

/* Agrega el empleado al modelo y lo actualiza */ modeloEmpresa.AddToEmpleado(empleadoNuevo); modeloEmpresa.SaveChanges();

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

ADO.Net Entity FrameworkEliminación de entidades /* Consulta para obtener la entidad que se eliminará */ /* Empleado Juan Perez */ Empleado empleadoEliminado = modeloEmpresas.Empleado.First (emp => emp.Rut == 12345678);

Console.WriteLine("Empleado antes de borrar {0}", modeloEmpresas.Empleado.Count());

modeloEmpresas.DeleteObject(empleadoEliminado);

modeloEmpresas.SaveChanges();

Console.WriteLine("Empleado después de borrar {0}", modeloEmpresas.Empleado.Count());

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Arquitectura en CapasActividad 2:Controles enlazados a datos mediante entidades (EDM)

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Recommended