Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Qué Es Un Modelo de Entidad de Datos (EDM)

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Esmeraldas 30 de Octubre del 2020

Intriago Chila Katty

Qué es un Modelo de entidad de datos (EDM)


Entity Data Model (EDM) es un conjunto de conceptos que describen la estructura de
los datos, independientemente del formato en el que estén almacenados. EDM se
basa en el modelo entidad-relación (Entity-Relationship Model) descrito por Peter
Chen en 1976, pero también incorpora nuevas funciones y amplía sus usos
tradicionales.

Una entidad en Entity Framework es una clase que se asigna a una tabla de base
de datos. Qué tipo de entidades maneja el Entity Framework. Explique cada una
de ellas.

 Entityobject
 Poco
 Proxy POCO (proxy dinámico)
 Entidades de autocontrol.

Una clase POCO es una clase que no depende de ninguna clase base específica del
marco de trabajo. Es como cualquier otra clase normal. por lo tanto, se llama "Plain
Old CLR Objects". Estas entidades POCO (también conocidas como objetos
ignorantes de persistencia) admiten el mismo comportamiento para consultar, insertar,
actualizar y eliminar como los tipos de entidades generados por Entity Data Model.
Dinamyc Proxy (POCO Proxy):
Dynamic Proxy es una clase de proxy en tiempo de ejecución que ajusta la entidad
POCO. Las entidades proxy dinámicas permiten la carga diferida.
Una entidad POCO debe cumplir los siguientes requisitos para convertirse en un proxy
POCO:
Una clase POCO debe declararse con acceso público.
Una clase POCO no debe estar sellada (NotInheritable en Visual Basic).
Una clase POCO no debe ser abstracta (MustInherit en Visual Basic).
Cada propiedad de navegación debe declararse como pública, virtual.
Cada propiedad de colección debe ser ICollection<T>.
La opción NOT debe ser false (el valor predeterminado es true) en la clase de
contexto.ProxyCreationEnabled.
Explique los escenarios que maneja el Entity Framework para la persistencia
(guardar) una entidad en la base de datos.
Hay dos escenarios al conservar (guardar) una entidad en la base de datos mediante
Entity Framework: el escenario conectado y el escenario desconectado.

 Escenario conectado

En el escenario conectado, se utiliza la misma instancia de la clase de contexto


(derivada de DbContext) para recuperar y guardar entidades. Realiza un seguimiento
de todas las entidades durante su vida útil. Esto es útil en aplicaciones de Windows
con la base de datos local o la base de datos en la misma red.

 Escenario desconectado

En el escenario desconectado, se utilizan diferentes instancias del contexto para


recuperar y guardar entidades en la base de datos. Una instancia del contexto se
elimina después de recuperar datos y se crea una nueva instancia para guardar
entidades en la base de datos.

El escenario desconectado es complejo porque una instancia del contexto no realiza


un seguimiento de las entidades, por lo que debe establecer un estado adecuado para
cada entidad antes de guardar entidades mediante.
Explique para que se usa la clase System.Data.Entity.EntityState.
LA API de EF mantiene el estado de cada entidad durante su vigencia. Cada entidad
tiene un estado basado en la operación realizada en ella a través de la clase de
contexto. El estado de la entidad representado por una enumeración en EF 6 y en EF
Core con los siguientes
valores: System.Data.Entity.EntityStateMicrosoft.EntityFrameworkCore.EntityState

1. Añadido
2. Modificado
3. Eliminado
4. Inalterado
5. Separado

EF API compila y ejecuta los comandos INSERT, UPDATE y DELETE en función del
estado de una entidad cuando se llama al método. Ejecuta el comando INSERT para
las entidades con estado Added, el comando UPDATE para las entidades con estado
Modified y el comando DELETE para las entidades en estado Deleted. El contexto no
realiza un seguimiento de las entidades en el estado Detached. La figura siguiente
ilustra la importancia de los estados de entidad: context.SaveChanges()

Qué es el Entity Framework Core?.

Entity Framework Core (EF Core) es un asignador de base de datos de objetos


moderno para .NET. Admite consultas LINQ, seguimiento de cambios, actualizaciones
y migraciones de esquemas.

Su función principal es servir como interprete entre dos tecnologías fundamentadas en


distintos principios por un lado la programación orientada a objetos y por el otro las
bases de datos relacionales y no relacionales.
¿Cuáles son las diferencias entre el Entity Framework clásico y el Entity
Framework Core?

 EF
EF es una tecnología Open Source en la que todo el mundo puede ver su código
fuente e incluso contribuir con mejoras y aladidos.
Lo bueno de EF 6 es que es una plataforma muy probada en mil batallas, muy
estable y con las características y capacidades muy definidas. Si la aprendes sabes
que vas a poder crear aplicaciones de acceso a datos sin problemas técnicos (si la
usas bien, claro). Además, aunque la siguen manteniendo y corrigen bugs, no va a
evolucionar mucho más, por lo que lo que aprendas va a ser muy estable.

Lo malo de EF6 es que solamente funciona en Windows y con la plataforma .NET


"clásica". Eso no tiene por qué ser un problema en absoluto. Todo depende del tipo de
aplicaciones que crees.

 EF CORE
.NET Core es una versión más ligera y modular de .NET, con menos capacidades pero
con mayor rendimiento, menor consumo de recursos y además multiplataforma: capaz
de ejecutarse en Windows, Linux o Mac.
Por lo tanto EF Core es una versión ligera, extensible y multi-plataforma de Entity
Framework.
Entre sus características añadidas o mejoradas están las propiedades  shadow, la
generación de claves en el lado cliente, mejor mapeado de funciones escalares,
consultas compiladas explícitas, que las consultas SQL generadas son mucho más
legibles o la posibilidad de lanzar instrucciones en batch.

Explique qué es y para qué se usa la clase


System.Data.Entity.DbContextDbContext tanto en Entity Framework, como en
Entity Framework Core?
System.Data.Entity.DbContextDbContext
Una instancia de DbContext representa una combinación de los patrones Unit Of Work
y Repository de modo que se pueda usar para consultar desde una base de datos y
agrupar los cambios que, a continuación, se volverán a escribir en el almacén como
una unidad. DbContext es conceptualmente similar a ObjectContext.

Para usar Entity Framework o EF Core para consultar, insertar, actualizar y eliminar
datos mediante objetos .NET, primero debe crear un modelo que asigne las entidades
y relaciones que se definen en el modelo a las tablas de una base de datos.

Una vez que tiene un modelo, la clase principal con la que interactúa la aplicación
es System.Data.Entity.DbContext (a menudo se conoce como clase de
contexto). Puede usar un DbContext asociado a un modelo para:

 Escribir y ejecutar consultas


 Materializar los resultados de la consulta como objetos entidad
 Realizar un seguimiento de los cambios que se realizan en esos objetos
 Volver a guardar los cambios de objetos en la base de datos
 Enlazar objetos en memoria a controles de interfaz de usuario

Que es LINQ?. Por qué deberíamos usar LINQ (Ventajas)


LINQ (Language Integrated Query) es un conjunto de extensiones integradas en el
lenguaje C#, que nos permite trabajar de manera cómoda y rápida con colecciones de
datos, como si de una base de datos se tratase. Es decir, podemos llevar a cabo
inserciones, selecciones y borrados, así como operaciones sobre sus elementos.
Ventajas de LINQ:

 Lenguaje familiar: los desarrolladores no tienen que aprender un nuevo


lenguaje de consulta para cada tipo de fuente de datos o formato de datos.

Menos codificación: reduce la cantidad de código que se debe escribir en
comparación con un enfoque más tradicional.

Código legible: LINQ hace que el código sea más legible para que otros
desarrolladores puedan entenderlo y mantenerlo fácilmente.

Forma estandarizada de consultar múltiples fuentes de datos: la misma
sintaxis LINQ se puede utilizar para consultar múltiples fuentes de datos.

Compilar la seguridad del tiempo de las consultas: proporciona verificación
de tipos de objetos en tiempo de compilación.

Soporte IntelliSense: LINQ proporciona IntelliSense para colecciones
genéricas.

 Dar forma a los datos: puede recuperar datos en diferentes formas.

La principal y única desventaja que tiene, es que es un poco más lenta que si


utilizásemos bucles for o foreach para iterar la colección y hacer la operación. Por
supuesto esto no es apreciable en prácticamente ninguna situación convencional, pero
en entornos donde cada milisegundo cuenta, debes conocer que tiene un impacto.
¿Cuáles son las sintaxis de consulta utilizadas por LINQ?

Sintaxis integrada

Otra de las grandes ventajas que tiene LINQ es que permite crear expresiones
directamente en el código, de manera similar a si escribiésemos SQL directamente en
C#. Por ejemplo:

var resultado = from alumno in alumnos


where alumno . Nota >= 5
orderby alumno .Nota
select alumno ;

nos devolverá la lista de alumnos que tienen una nota superior a o igual a 5,
ordenados por nota ascendentemente.

 IEnumerable<int> highScoresQuery =

from score in scores

where score > 80

 orderby score descending


select score;

 IEnumerable<string> highScoresQuery2 =
from score in scores
where score > 80
orderby score descending

select $"The score is {score}";

 int highScoreCount =
(from score in scores
where score > 80
select score)

.Count();

En el ejemplo de código siguiente se muestra una expresión de consulta simple con un


origen de datos, una cláusula de filtrado, una cláusula de clasificación y ninguna
transformación en los elementos de origen. La cláusula select finaliza la consulta.

static void Main()


{
// Data source.
int[] scores = { 90, 71, 82, 93, 75, 82 };

// Query Expression.
IEnumerable<int> scoreQuery = //query variable
from score in scores //required
where score > 80 // optional
orderby score descending // optional
select score; //must end with select or group

// Execute the query to produce the results


foreach (int testScore in scoreQuery)
{
Console.WriteLine(testScore);
}
}
// Outputs: 93 90 82 82

 // percentileQuery is an IEnumerable<IGrouping<int, Country>>


var percentileQuery =

from country in countries

let percentile = (int) country.Population / 10_000_000

group country by percentile into countryGroup

where countryGroup.Key >= 20

orderby countryGroup.Key

select countryGroup;

 // grouping is an IGrouping<int, Country>

foreach (var grouping in percentileQuery)

Console.WriteLine(grouping.Key);

foreach (var country in grouping)

Console.WriteLine(country.Name + ":" + country.Population);

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-
reference/query-expression-syntax-examples-filtering

Cuál es la diferencia de las interfaces: ¿IEnumerable e IQueryable utilizando


LINQ en C# .Net?
IEnumerable hace referencia a una colección, pero IQueryable es solo una consulta y
se generará dentro de un Árbol de expresiones. Esta consulta se ejecutará para
obtener datos de la base de datos.
Entonces, cuando simplemente tiene que iterar a través de la colección en memoria,
use IEnumerable, si necesita hacer alguna manipulación con la colección como
Dataset y otras fonts de datos, use IQueryable

En palabras simples, otra gran diferencia es que IEnumerable ejecuta la consulta de


selección en el lado del servidor, carga los datos en la memoria del lado del cliente y
luego filtra los datos mientras IQueryable ejecuta la consulta de selección en el lado
del servidor con todos los filtros.
https://hdeleon.net/cual-es-la-diferencia-de-ienumerable-y-iqueryable-net-c-vb/

También podría gustarte