Entity Framework Core 2.0 Jose Ant. Beltrán @bjabinn.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Las aplicaciones requieren datos persistentes
3/24/2017 3:58 PM © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Mario Cortés Flores Consultor SharePoint en Renacimiento Coordinador SUGES Coautor de:
Código: HOL-SQL30. Dos tipos de datos nuevos de tipo Spatial: - Geography (superficie elipsoidal) - Geometry (superficie plana) Tipos de datos en 2.
Lenguaje de consulta de Hibernate
Entity Framework Desarrollador vs. DBA Enrique Puig Nouselles
Características Técnicas
JAVA Persistence API (JPA)
Acceso a datos con ADO.NET
SQL Básico Prof. Nelliud D. Torres.
Sonora.Net – Ernesto Ibarra
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
UNIVERSIDAD LATINA BASES DE DATOS.
ASP.NET Web API. HTTP no es sólo para acceder a páginas web. Es también una poderosa plataforma para construir APIs que expongan servicios y datos. HTTP.
Colegio de Bachilleres Plantel 13 Xochimilco-Tepepan Integrantes: Karen Elizabeth González Monroy Elizabeth De Jesús Vergara Grupo:308.
Base de Datos con Visual Basic
REALIZADO POR: MERINO MERINO JORGE MORI CORREA JHONATAM VIDARTE DELGADO JAVIER.
APLICACIÓN EN VISUAL BASIC
Cloud Computing Clase 9 – Tooling Miguel Johnny Matias
Java Data Base Connectivity
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
Mapeo de Estructuras XML a Bases de Datos Relacionales
Manual Desarrollo Flex – J2EE. Contenidos Análisis y Diseño 1 Implementación 2 J2EE 3 Pruebas 4.
Bases de Datos y Conectores
Tema 11 Bases de Datos y el Lenguaje SQL
Acceso a Datos Erick López Ovando Licenciado en Informática.
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
¿Qué es una base de datos? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde.
 Gregorio López González  Norberto Misael Valtierra Ornelas  Ricardo Enrique Pérez Andrade  Luis Rodríguez Valencia.
Bases de Datos Cartográficas Laura Sebastiá Departamento de Sistemas Informáticos y Computación.
UNIDAD IV. Diseño de Base de Datos Relacionales
Administración de Sistemas Gestores de Bases de Datos.
COMANDOS BÁSICOS MYSQL BASES DE DATOS 2 UNIVERSIDAD DE LA AMAZONIA.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
V 14: Nuevos Procedimientos
ARKDIA – CAPACITACIÓN powered by
Conferencia 9. ODBC, OLE DB y JDBC.
BASE DE DATOS.
Acceso a Bases de datos con ADO.NET
Implementación Asistida BD Firebird/Interbase SQL Server
Convenciones de nomenclatura y diseño
Practicando con SQL Server
Wladimir Solano Marco Pascale
Curso Computación-Tecnología Médica
#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago.
SEGURIDAD SQL Usuarios, privilegios y perfiles.
Tecnología de la Información y Transformación Organizacional
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
Arquitectura de una Base de Datos
Técnicas y Herramientas de Computación
PARCIAL III BASE DE DATOS.
Conectividad de Bases de Datos
Arquitectura de una Base de Datos
Prof. Daniel Obando Fuentes
SQL Lenguaje de Consulta Estructurado
BASE DE DATOS relacional
Aggregation framework con PyMongo
Unidad V :- Integridad de datos.
SQL Graph Databases Ricardo Estrada DPA
ADMINISTRACION ORACLE LIC. EDUARDO GAYTAN. Oracle Database 11g Edition XE es un gestor de base de datos relacional Oracle ideal tanto para aquellos que.
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
Acceso a bases de datos ADO.NET
Construcción de elementos de Software 4 MSc. Oscar Mauricio Salazar Ospina MSc Juan Camilo Jaramillo Alzate 15/05/2019Programación distribuida y paralela1.
¿Qué es una Base de Datos? Es un conjunto de datos almacenados. Su esquema es el siguiente : Tabla Persona Base de Datos Tabla Profesión.
Nuevas Características de SQL Server 2019
CONEXIÓN SE SIG A BASE DE DATOS EXTERNAS ENLACES ESPACIALES CARTOGRAFICOS MODELOS GEO-REALCONADOS.
UNIVERSIDAD NACIONAL FEDERICO VILLAREAL ESCUELA UNIVERSITARIA DE EDUCACIÓN A DISTANCIA ESCUELA UNIVERSITARIA DE EDUCACIÓN A DISTANCIA ESPECIALIDAD: INGENIERÍA.
Transcripción de la presentación:

Entity Framework Core 2.0 Jose Ant. Beltrán @bjabinn

Nuestro Roadmap Inicial ! Repositorio/SQL/EF/EF Core .NET Core Web Api + Swagger / OpenApi Deploy: Azure / Docker xUnit / Sonar / StyleCop  + Builds e Integración continua ASP.NET Core +/& Angular Xamarin

https://dotnet.github.io/

Nuestro Roadmap hoy Presentación del evento Diferencias EF 6.0 y EF Core 2.0 (data providers) Creando un modelo Relaciones y Mapeos DB First, Code First Métodos

Presentación del evento ¿Qué es Entity Framework? ¿Por qué EF Core? Diferencias EF & EF Core EF Core Roadmap

Diferencias EF 6.x y EF Core 2.0 (1/3) Model EF 6.x EF Core 2.0 Propiedades “shadow” Si Many-to-many: With join Many-to-many: sin joins Mapeo de funciones escalares de base de datos Si (2.0) Datos Espaciales Visualizar/Editar modelo (gráficamente) Ingeniería inversa de base de datos SI (Wizard) Si (CLI) Update incremental desde base de datos Parcialmente Separación de tablas DbContext Pooling Procesamiento de operaciones a BD (por lotes) Filtrado a nivel de modelo Si(2.0) Shadow: No definidas en la entidad pero si definidas por EF Core. Nombre será: la Id de la entidad dependiente y se introduce en la independiente. Es decir: Blog -> N Post. Post tiene referencia a Blog pero no BlogID. Pues EF Core creará una shadow en Post con nombre BlogId NO hechas Linq SQL GroupBy aun NO traduce eso a SQL sino que se trae todo y lo ejecuta en memoria :S :S :S (estará en EF Core 2.1) No a los Stored Procedures Lazy Loading Spatial types (geography, geometry, …) Bases de datos no relacionales Hechas: Global queries Linq.Functions.Like

Diferencias EF 6.x y EF Core 2.0 (2/3) Query EF 6.x EF Core 2.0 LINQ (*más funciones son delegadas a BD) y LIKE Si Si* (2.0) Evaluación mixta cliente / servidor Si (2.0) Carga de datos Eager / Lazy / Explicita(1.1) Si / Si / Si Si / No / Si Consultas SQL directas (Tipos definidos / No Definidos) Si / Si Si / No Consultas SQL directas por composición Procedimientos almacenados No Compilación de consultas (a cache) Evaluacion mixta: ahora EF detecta que hacer en servidor y que en cliente permitiendo/optimizando el uso de funciones de c# Hay que tener cuidado en este sitio de situaciones y por ello hay que tener especial cuidado (lanzara un warning al log si el rendimiento decae)

Diferencias EF 6.x y EF Core 2.0 (3/3) Proveedores de datos EF 6.x EF Core 2.0 SQL Server Si MySQL PostgreSQL Oracle De pago SQLite SQL Compact DB2 In-memory (testing) ¿dónde están las BD no relacionales? Roadmap oficial en: https://github.com/aspnet/EntityFrameworkCore/wiki/Roadmap

Creando un modelo (1/2) OnModelCreating(…) Atributo Convención Anotación Fluent API Tipos incluidos / Excluidos Declarado en contexto, descubierto por relaciones o usado en OnModelCreating [NotMapped] .Ignore<class> Clave primaria Id or <nombre>Id [Key] .HasKey(x => x.Id); Campo requerido --- [Requiered] .IsRequired(); Valores generados PK or GUID [DatabaseGenerated] .ValueGenerated Longitud máxima Cedido a BD [MaxLength(xxx)] .HasMaxLength(xxx) Timestamp Nunca [Timestamp] .IsConcurrenceToken() Propiedades Shadow Relación sin FK No se puede Índices FK .HasIndex(b=>b.xxx); Clave Primaria Nombradas PK_tipo .HasKey().HasName(””) Esquema dbo .HasDefaultSchema(“”) Columnas calculadas No procede .HasComputedColumns Shadow: No definidas en la entidad pero si definidas por EF Core. Nombre será: la Id de la entidad dependiente y se introduce en la independiente. Es decir: Blog -> N Post. Post tiene referencia a Blog pero no BlogID. Pues EF Core creará una shadow en Post con nombre BlogId

Creando un modelo (2/2) Atributo Convención Anotación Fluent API Valor por defecto No configurado No se puede .HasDefaultValue(v); Clave foránea FK_depen_princ_name .HasForeign(p=>p.Field) .HasConstraintName(“”)

Relaciones (1/2) Por convención Anotaciones: Si existen propiedades de navegación entre 2 tipos -> navegación inversa Si una entidad dependiente contiene una PK de otra entidad, es una FK Si entidad dependiente posee 1 var de la independiente, EF creará una shadow Navegación en un sentido: Se colocará una lista de objetos en la entidad independiente Anotaciones: [ForeignKey], [InverseProperty(“”), Propiedad de navegación: propiedad definida que es una referencia a otra entidad.

Relaciones (2/2) Fluent API Identificar las propiedades de navegación con HasOne, HasMany Seguir con una llamada a WithOne, WithMany. Propiedad de navegación: propiedad definida que es una referencia a otra entidad.

Cargando datos Eager: datos cargados como parte de la consulta inicial var blog = context.Blogs.Include(blog =>blog.Post).ThenInclude(post =>post.Author).ToList(); Explicita: los datos se cargan “en un momento” posterior (> EF 1.1) Lazy: datos cargados cuando se accede a ello por las propiedades de navegación (no presente en EF Core)

Mapeos de tablas a base de datos Por convención: 1 entidad -> 1 tabla, mismo nombre Anotación: [Table(“nombre”[, Schema=“nombre”]] Fluent API: .ToTable(“nombre”, schema:”nombre”) Clase 1 Clase 2 Clase 3 Entity Framework Core Mapeo de columnas Tablas Por convención: 1 propiedad ->1 columna, mismo nombre Anotación: [Column(“nombre”] Fluent API: .HasColumnName(“nombre”) Por convención: primero el nombre del DbSet, sino el nombre de la clase.

Métodos OnConfiguring Es lanzado previamente a la generación del contexto. Se utiliza normalmente para establecer la cadena de conexión. OnModelCreating Se lanza después de que el contexto haya sido inicializado y antes de la definición del contexto. En ella se definen relaciones, atributos no declarados en Anotaciones, filtros del modelo, etc.

Code First https://github.com/bjabinn/EBooksShop/tree/develop/EF%20Core%202.0

1.- En Visual Studio y crea un projecto .NET Core 2.0 Database First 1.- En Visual Studio y crea un projecto .NET Core 2.0 2.- Abre la Consola Administradora de paquetes Nuget 3.- Escribe: Scaffold-DbContext "Server=7.125.102.122\SQLEXPRESS;Database=EF_CorePresentationCodeFirst;User Id=sa;Password=Everis2016; MultipleActiveResultSets=True;" -Output "Models“ (Enter) 4.- Pulsa Enter 5.- En Provider, escribe: Microsoft.EntityFrameworkCore.SqlServer (Enter)

Example of new things in EF 2.0 Owned entities and Table Splitting DbContext pooling (ASP.NET) String interpolation in FromSql and ExecuteSqlCommand Database scalar function mapping