Entity Framework 6 Para qué sirve?



Documentos relacionados
Base de datos relacional

Manual imprescindible SQL Server 2012 (c) Francisco Charte Ojeda

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Oracle 12c DISEÑO Y PROGRAMACIÓN

BASE DE DATOS RELACIONALES

VISIO: Herramienta CASE

Prueba de Concepto, Informes XBRL vs. SGBDR.

Guía de Laboratorio Base de Datos I.

Introducción Microsoft SQL Server 2000 Qué puede hacer con SQL Server 2000? Qué necesita saber para usar SQL Server 2000?

MySQL Administrator. Instructivo básico para el respaldo de base de datos gncys.com

Automatización de la gestión y publicación de datos abiertos

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez

Desarrollo de aplicaciones de acceso a bases de datos con proyectos Access

DESARROLLO DE APLICACIONES CON BASES DE DATOS RELACIONALES EMBEBIDAS / EMPOTRADAS ING. ROGER CALDERON MORENO

E³.series - Documentación

C a p í t u l o. Instalación. Contenido

LABORATORIO 2. SQL SERVER- ESTRUCTURAS BASE DE DATOS DE LA ALCALDIA

WUS (WINDOWS UPDATE SERVICE)

Pestaña Prod/Serv Tipos de Configuración de Replica: Servidor: DB (Base de Datos): Botón de Conectar... 3

Arquitectura Cliente/Servidor

Creación, modificación y almacenamiento de contenidos

10775 Administering Microsoft SQL Server 2012 Databases

1

Guía práctica SQL Server 2008

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Índice libro SQL Server / 6

Opciones de replicación y distribución de datos en Oracle RDBMS 9iR2, 10gR2 y 11gR1

QUE ES ACCESS PESTAÑA INICIO VER: EN ESTA PESTAÑA SE ENCUENTRA

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Parte III. Características del proyecto. Web corporativa. Aplicación gestión. Comandas. Gestión cocina.


Asignación de Procesadores

Instalación de una nueva Instancia de Microsoft SQL Server 2008:

Manual de usuario Versión: 1.3 Edición: 05/02/2015 1

FME Desktop. Data in Motion

rg.o El l c i c c i l c o l o de d vi v d i a d a cm a l@ rza e de d u n u n si s s i t s e t ma m a de d in i f n or o ma m c a i c ó i n ó b

Utilización del programa de Orabench Versión para Migración. Describir los pasos para la utilización del programa Orabench de Oracle.

PERFIL TÉCNICO CONSULTOR SHAREPOINT PARA LA WEB

Qué es una base de datos?

Programa de actualización profesional ACTI.NET. Desarrollo de Aplicaciones Web con ASP.NET MVC 5.0 y C#

Ejecutar script sobre una base de datos WhitePaper Junio de 2008

Entorno de Trabajo. Integración de Sistemas

SMP Sistema Móvil de Preventa. Manual del usuario

INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INTRODUCCIÓN INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES INSTRUCCIONES DE DEFINICIÓN DE TABLAS E ÍNDICES

Oracle Database 10g: Taller de Administración I 1-2

Tema 11 Bases de datos. Fundamentos de Informática

Desarrollo y servicios web

Curso PHP Advanced and Ajax

Almacén de datos - concepto. Arquitectura de un sistema de almacén de datos

Programación páginas web. Servidor (PHP)

BASES DE DATOS TEMA 1

Introducción a Visual Studio.Net

Instalación y configuración de Windows SharePoint Services (WSS) 2003

Fundamentos de Oracle

Copias de seguridad con SQL Server 2005 WhitePaper Febrero de 2008

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Como instalar Zeos Lib y no morir en el intento. Un Tutorial.

Pasos para instalar y configurar Microsoft SQL Server 2000.

Instituto Tecnológico Superior de Lerdo

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

ADO.NET con Base de datos SQL Server

GUÍA PASO A PASO PARA EXPORTAR UNA BASE DE DATOS ACCESS A MYSQL

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

Ficheros Electrónicos

Iniciar flujo a partir de un archivo XML

MANUAL PARA ADMINISTRACIÓN I: MI CONFIGURACIÓN. Guía básica para configuración personal del usuario de Salesforce

OpenProdoc. ECM Open Source

75.99 TRABAJO PROFESIONAL INGENIERIA EN INFORMATICA

INSTALACIÓN DE MySQL SERVER EN WINDOWS

DATOS EN SERVIDOR DE RED PROCEDIMIENTO PARA INSTALACIÓN Y CONFIGURACIÓN DE BASES DE DATOS EN SERVIDORES DE RED

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio).

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Postgrado en SQL Server Experto en Creación y Administración Profesional de

CAPITULO 8. Planeamiento, Arquitectura e Implementación

Vistas en postgresql

Actualización de versión a Bizagi 10.x

DATOS EN SERVIDOR DE RED PROCEDIMIENTO PARA INSTALACIÓN Y CONFIGURACIÓN DE BASES DE DATOS EN SERVIDORES DE RED

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Procedimiento actualización versión GIRH-Sueldos Win

Aplicaciones de Bases de Datos con Delphi

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Vista de Datos y Editor

Apuntes de la Unidad 1 de Base de Datos

1. Notas sobre la instalación de estas aplicaciones

[Manual de Uso e Instalación]

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Desarrollo de Aplicaciones para ios

REQUISITOS DEL SISTEMA. Software Servidor. Cliente. Hardware Servidor. Cliente

SUS (Software Update Services)

Enfocus anuncia Switch 11, un sistema con automatización inteligente, totalmente renovado y más fácil de implantar

Falencias en cuanto a BDD

Apéndice A Instalación de Visual Studio.NET

Número de Práctica: 1 Nombre de la Práctica: Comunicación Cliente Servidor Vía Sockets Java con Sistema Manejador de Bases de Datos

ÍNDICE PRIMERA PARTE... 17

ADO.NET. Arquitectura de ADO.NET

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Manual de uso. Manual de uso - citanet 1

vgestorweb vgestorweb 1/9

Transcripción:

Entity Framework 6 Jorge Bustos j.bustos@danysoft.com, Servicios Profesionales sp@danysoft.com www.danysoft.com 18.04.2013 Entity Framework 6 Para qué sirve? 1

Entity Framework Es una abstracción que representa un almacén de datos (no sólo SQL Server o SQL Server CE) El almacén de datos es un contexto que contiene Colecciones de objetos (representan filas de tablas) Relaciones entre objetos (propiedades de navegación) Flujos de trabajo con EF Model First Crear modelo en diseñador BD creada desde modelo Clases auto-generadas desde modelo Code First (nueva BD) Define clases y mapeo en código BD creada desde el modelo Usar Migrations para cambiar BD Database First Code First (BD existente) t Ingeniería inversa de BD Usar herramientas de a modelo ingeniería inversa Clases auto-generadas desde modelo Mapeo y clases definidos en código 2

Ejemplo de modelo Ejemplo de Code First Fluent API 3

Ejemplo de Code First Clave Atributos Convencion es Relación Trabajar con Entity Framework Descargar paquete NuGet de EF Crear modelo (EDM o Code First) Instanciar el contexto (derivado del modelo) Se trabaja con LINQ a Entidades Llamar a SaveChanges Resultado: no hay que escribir sentencias SQL 4

Ejemplito de código de EF Guardar Leer Code First Migrations Permiten aplicar los cambios de las clases Code First a la base de datos Acepta Upgrade y Downgrade Pueden ser manuales o automáticas (depende del inicializador de BD) Se puede usar migrate.exe Desde EF6 se pueden personalizar para añadir otras artefactos a la BD, sin utilizar T-SQL 5

Ejemplo de Code First Migrations Ejemplo de Code First Migrations 6

Sincronizar BD con EDM Update Model Update Database Al trabajar con modelos se pueden aplicar los cambios a la BD Los cambios de la DB pueden actualizar el modelo Normalmente la BD de desarrollo no es la de producción Usar otras herramientas como SSDT o la que se desee Miedos a EF 1. No puedo ejecutar mis propias sentencias DbContext.SqlQuery/SqlQuery<T> Database.ExecuteSqlCommand 2. Tarda mucho en arrancar y en ejecutar consultas generación de vistas más rápida vistas pregeneradas (con EF Power Tools) Mejora de cachés y otras optimizaciones de consultas 3. No puedo utilizar procedimientos almacenados Mapeo de procedimientos de DB a funciones C# en el modelo Mapeo de Update, Insert, Delete en modelo POCO 7

Más miedos a EF 4. Las consultas generadas no son óptimas Van mejorando Si la estructura de BD es demasiado compleja, usar procedimientos Se pueden usar procedimientos almacenados La mayoría de las consultas son CRUD triviales 5. Difícil de coordinar el modelo con la BD Database First y Model First soportan Update from Model y Update Database POCO soporta migraciones manuales o automáticas Y más miedos a EF 6. Falta de control sobre entidades relacionadas Se puede hacer un mapeo preciso con Fluent API de caulquier tipo de relación Se soportan las acciones en cascada a nivel de modelo y a nivel de BD 7. El modelo de programación es complejo En EF 4.0 se creó DbContext evitando complejidades de ObjectContext POCO puede mantenerse con clases parciales e ingeniería inversa 8

Otro miedo: Gestión de entidades relacionadas La carga de entidades relacionadas soporta varias modalidades: Carga diligente (eager loading) Carga hijos al cargar el padre Carga diferida (lazy loading) Carga hijos cuando va a accederse a ellos Carga explícita (explicit loading) Carga de la lista por código Consultas con proyecciones Carga con LINQ que proyecta hijos en una colección Entity Framework De dónde viene y a dónde va? 9

Evolución de EF hasta EF 5 (beta y final).net 3.5 SP1: primer EF.NET 4.0: EF 4.0 EF 4.1: DbContext, t Code First, Plantilla de EDMs a DbContext t EF 4.2: Gestión de versiones EF 4.3: Migraciones Code First EF 5.0 (actualmente Beta2): Mapeo a enum, propiedades geográficas, soporte de funciones con valores de tabla, mejoras de rendimiento VS 11: diagramas múltiples EF 5 (final): Múltiples diagramas por BD Importación masiva de procedimientos almacenados a modelo Novedades en EF 6 Mejoras de rendimiento Generación de vistas más rápida Funcionamiento asíncrono: async/await de 4.5, y SaveChangesAsync() Mejoras de programación Soporte de enum y datos espaciales en.net 4 Resiliencia de las conexiones (importante para servicios en la nube) Resolución de dependencias (Service Locator) 10

Más novedades en EF 6 Mejoras de configuración Configuración por código (de EF, no del modelo, además de por archivo.config) Esquema por defecto Añadir configuración (Fluent API) desde ensamblado Servicios de pluralización de nombres personalizable Mejoras de Code First Convenciones personalizadas Servicios de pluralización de nombres personalizable Mapeo de procedimientos INSERT/UPDATE/DELETE a entidades Y más novedades en EF 6 Mejoras de migraciones Configuración de tabla de migraciones Operaciones de migración personalizadas Mejoras de conexiones y transacciones Múltiples contextos por base de datos Contextos sobre conexiones ya abiertas Mejoras de transacciones Nivel de aislamiento por defecto = READ_COMMITED_SNAPSHOT UseTransaction (trabajo con transacciones de DB activas) BeginTransaction (permite elegir el nivel de aislamiento) 11

Ahora EF es Open Source EF es Open Source Se puede contribuir al código. Por ej. Unai Zorrilla ha contribuido con: carga de configuraciones de ensamblado servicio de pluralización personalizable Extensión de VS: EF PowerTools ( y no es la única!) Menú contextual proyecto C# Reverse Engineer Code First Customize Reverse Engineer Code First (T4) Menú contextual archivo C# con DbContext View Entity Data Model (read-only) View Entity Data Model (XML) View Entity Data Model DDL Generate Views (también en menú contextual EDM) 12

Demo Hacer un Code First con ingeniería inversa con EntityFramework Reverse POCO Code First Generator Pre-generar vistas Mostrar el modelo Mostrar el DDL de SQL del modelo Entity Framework Providers Por supuesto: SQL Server y SQL Server CE EF 6 (todavía en alpha): DevArt dotconnect: Oracle, MySQL, PostgreSQL, SQLite, SalesForce, SQL Server Se supone que migrarán los de la 5 EF 5: MySQL Connector, Oracle ODP.NET, PostgreSQL Npgsql, SQLite, Firebird, etc. 13

http://www.danysoft.com/visualstudio www.danysoft.com 14