lenguaje de programación .net ldp3501: visual studio .net 2008 ado.net entity framework

18
© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Lenguaje de Programación .Net LDP3501: Visual Studio .Net 2008 ADO.Net Entity Framework.

Upload: herman

Post on 22-Feb-2016

54 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

Lenguaje de Programación .Net

LDP3501: Visual Studio .Net 2008

ADO.Net Entity Framework.

Page 2: 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.

Page 3: 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 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.

Page 4: 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 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).

Page 5: 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 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.

Page 6: 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 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.

Page 7: 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 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.

Page 8: 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 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.

Page 9: 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 FrameworkDefiniendo un Modelo de Entidades

Page 10: 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 FrameworkDefiniendo un Modelo de Entidades

Page 11: 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 FrameworkDefiniendo un Modelo de Entidades

Page 12: 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 FrameworkDefiniendo un Modelo de Entidades

Page 13: 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 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); }

Page 14: 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 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();

Page 15: 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 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();

Page 16: 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 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());

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

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

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

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

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