PDF de programación - Parte II. Diseño e implementación de aplicaciones Web con .NET - ADO.NET Entity Framework

Imágen de pdf Parte II. Diseño e implementación de aplicaciones Web con .NET - ADO.NET Entity Framework

Parte II. Diseño e implementación de aplicaciones Web con .NET - ADO.NET Entity Frameworkgráfica de visualizaciones

Publicado el 11 de Junio del 2021
428 visualizaciones desde el 11 de Junio del 2021
418,9 KB
23 paginas
Creado hace 15a (16/04/2009)
Integración de Sistemas

ADO.NET
Entity Framework

Integración de Sistemas
Integración de Sistemas
Parte II. Diseño e implementación de
aplicaciones Web con .NET

Contenido



Introducción
¿Por qué el Entity Framework?

¿Qué es el ADO.NET Entity Framework?

Arquitectura y componentes

Proveedores específicos de EF

Entity Data Model (EDM)

Entity Client (eSQL)

Object Services (eSQL, Linq to Entities)
Implementación de DAOs con Entity Framework



Curso 2008 - 2009

1

Integración de Sistemas

Introducción
¿Por qué el Entity Framework?

Desajuste de impedancias (impedance mismach)

Diferencias entre los modelos relacionales y los modelos de objetos
Diferencias entre los modelos relacionales y los modelos de objetos

Diseños guiados por modelos de dominio (Domain Driven Design,

DDD)

Proponen centrarse en el modelo conceptual o dominio de trabajo para

resolver el problema

Dan prioridad al problema a resolver!

Patrones en DDD

VO, Lazy Loading, Data Mapper, Unit of Work

Introducción
¿Por qué el Entity Framework?

Ignorancia de la persistencia (Persistence Ignorance)

Propugna el trabajo con objetos VO que para nada tengan que
Propugna el trabajo con objetos VO que para nada tengan que

saber sobre el almacenamiento subyacente

Construcción de objetos POCO (Plain Old CLR Objects)

Relajación: IPOCO

EF soportará objetos POCO en la segunda versión. En la primera

versión podemos trabajar con objetos IPOCO

Curso 2008 - 2009

2

Integración de Sistemas

Introducción
¿Qué es el ADO.NET Entity Framework?

Es un OR/M (Object Relational / Mapping) para .NET



Incluído en .NET Framework 3.5 SP1 y en VS2008 SP1 (11 de agosto de 2008)
Incluído en .NET Framework 3.5 SP1 y en VS2008 SP1 (11 de agosto de 2008)

Incluye un nuevo proveedor de ADO.NET, llamado Entity Client, que habliita el acceso a los

modelos conceptuales



Incluye dos componentes fundamentales:

Recursos para el entorno de trabajo:

Asistente para diseño en VS y generación de código

Librería:
Librería:

Físicamente, en el ensamblado System.Data.Entity.dll
Sus espacios de nombres se anidan en System.Data (System.Data.Common,

System.Data.EntityClient, System.Data.Mapping, System.Data.Metadata.Edm, etc.)

Arquitectura y componentes

Componentes de la arquitectura de EF

Curso 2008 - 2009

3

Integración de Sistemas

Arquitectura y componentes

Arquitectura y componentes
Proveedores específicos de EF

Fabricante
Devart (CoreLab)
IBM
MySQL AB
Npgsql
OpenLink

Phoenix
Phoenix
Sybase
Vista DB
Datadirect Tech.
Firebird

Provider para
Oracle, MySQL, PostgreSQL, SQLite
DB2, Informix Dynamic Server, U2
MySQL
PostgreSQL 7.3+ y 8.x
Oracle, Ingres, Informix, Sybase, MySQL, PostgreSQL, DB2,
Progress, SQL Sever, (cq. Datasource OpenLink ODBC o
bridge JDBC)
SQLite Database
SQLite Database
SQL Anywhere
VistaDB databases
Orable, Sybase, SQL Server, DB2…
Firebird databases

Curso 2008 - 2009

4

Integración de Sistemas

Arquitectura y componentes
Entity Data Model (EDM)

El modelo de datos basado en entidades permite

Definir los conjuntos de entidades y relaciones entre las entidades de nuestros
Definir los conjuntos de entidades y relaciones entre las entidades de nuestros

modelos conceptuales

Especificar cómo estos tipos se mapearán a la estructura de la fuente de

almacenamiento relacional subyacente

Para apoyar al EDM, se dispone de una serie de herramientas

integradas dentro del entorno

1 Diseñador de modelos EDM (Entity Data Model Designer)
1. Diseñador de modelos EDM (Entity Data Model Designer)

2. Asistente de modelos de entidades (Entity Data Model Wizard)

3. Asistente de actualización de modelos

Arquitectura y componentes > Entity Data Model (EDM)
1. Diseñador de modelos EDM (Entity Data Model Designer)

Herramienta visual integrada dentro de VS 2008 que permite crear y editar

modelos conceptuales

Componentes:

Superficie de diseño: crear y editar modelos

Detalles de mapeo: ver y editar mapeos

Navegación por el modelo: ver árboles de información sobre el modelo

coneptual y el modelo físico

Nuevos elementos dentro de la ventana de herramientas

Curso 2008 - 2009

5

Integración de Sistemas

Arquitectura y componentes > Entity Data Model (EDM)
1. Diseñador de modelos EDM (Entity Data Model Designer)

El EDM designer opera sobre ficheros edmx. Estos ficheros (XML) están

formados por tres secciones:

SSDL (Storage Schema Definition Language): estructura física de la BD

CSDL (Conceptual Schema Definition Language): entidades del modelo

conceptual

MSL (Mapping Schema Language): también conocida como sección C-S,

especifica cómo se relacionan las entidades del modelo conceptual con las
tablas, columnas, etc. del modelo físico

Arquitectura y componentes > Entity Data Model (EDM)
1. Diseñador de modelos EDM (Entity Data Model Designer)

Curso 2008 - 2009

6

Integración de Sistemas

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Encargado de generar el archivo edmx

Permite crear el modelo a partir de una BD ya existente o generar un
Permite crear el modelo a partir de una BD ya existente o generar un

modelo vacío

Agregando un modelo de EDM

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Asistente de creación de EDM (1)

Curso 2008 - 2009

7

Integración de Sistemas

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Asistente de creación de EDM (2)

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Asistente de creación de EDM (3)

Curso 2008 - 2009

8

Integración de Sistemas

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Vista gráfica del archivo edmx

Arquitectura y componentes > Entity Data Model (EDM)
2. Asistente de modelos de entidades (Entity Data Model Wizard)

Vista XML del archivo edmx

Curso 2008 - 2009

9

Integración de Sistemas

Arquitectura y componentes > Entity Data Model (EDM)
3. Asistente de actualización de modelos

Permite actualizar el modelo EDM después de que se hayan

realizado cambios en la BD

Arquitectura y componentes > Entity Data Model (EDM)
Herencia

El Modelo Relacional no soporta directamente el concepto de

herencia
La herencia se representa comúnmente en una base de datos de una de las tres

siguientes formas:

Mapeando una jerarquía entera de herencia a una sola tabla

Tabla por jerarquía, Table per Hierarchy (TPH)

Mapeando cada tipo en una jerarquía de herencia a una tabla diferente

Tabla por tipo concreto, Table per Type (TPT)

Mediante una aproximación híbrida donde la información común está en una tabla

única y existen tablas adicionales que contienen las columnas añadidas para cada tipo
derivado

Tabla por subclase , Table per Subclass (TPS)

El EF soporta mapeado a cualquiera de estos tres modelos de

herencia

Curso 2008 - 2009

10

Integración de Sistemas

Arquitectura y componentes
Entity Client

Es un nuevo proveedor de ADO.NET

En lugar de trabajar con modelos físicos trabaja con modelos EDM
En lugar de trabajar con modelos físicos trabaja con modelos EDM

Es agnóstico con respecto a la BD subyacente

Implementa una arquitectura abierta y es capaz de trabajar con diferentes

proveedores de EF específicos

Estos proveedores se encargan de traducir las consultas sobre el modelo en consultas

en el dialecto específico de la BD subyacente, así como de la ejecución de dichas
consultas y la recuperación de los resultados

El lenguaje utilizado para consultar los modelos de EDM se llama Entity SQL

(eSQL)

Es una variante de los dialectos de SQL

Mejora ciertos aspectos de las consultas, como la navegación entre tablas

Arquitectura y componentes > Entity Client
Entity SQL

Ej: consultar el número de cuentas

ConnectionStrings["MiniBankEntities"].ToString();

String connectionString = ConfigurationManager.
Int64 userId = 1234;
using (EntityConnection connection =
{

new EntityConnection(connectionString))
connection.Open();
EntityCommand command = connection.CreateCommand();
//Entity SQL does not support the count(*) aggregate. Use count(0) instead.
command.CommandText =
"SELECT count(0) " +
SELECT count(0)
+
"FROM MiniBankEntities.Account as t " +
"WHERE t.usrId = @usrId";

command.CommandType = CommandType.Text;

Curso 2008 - 2009

11

Integración de Sistemas

Arquitectura y componentes > Entity Client
Entity SQL

Ej: consultar el número de cuentas (cont.)

EntityParameter usrIdParameter = command.CreateParameter();
usrIdParameter.ParameterName = "usrId";
usrIdParameter.DbType = DbType.Int64;
usrIdParameter.Value = userId;
command.Parameters.Add(usrIdParameter);
/* It caches the query plan of the SQL dialect generated */
command.EnablePlanCaching = true;
int numberOfAccounts = (int)command.ExecuteScalar();
connection Close();
connection.Close();
Console.WriteLine("Number of Accounts: " + numberOfAccounts);

}

Arquitectura y componentes > Entity Client
Entity SQL

Es posible consultar el SQL generado

String generatedSQL = command ToTraceString();
String generatedSQL = command.ToTr
  • Links de descarga
http://lwp-l.com/pdf19295

Comentarios de: Parte II. Diseño e implementación de aplicaciones Web con .NET - ADO.NET Entity Framework (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad