Qué Es Un Modelo de Entidad de Datos (EDM)
Qué Es Un Modelo de Entidad de Datos (EDM)
Qué Es Un Modelo de Entidad de Datos (EDM)
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
Escenario desconectado
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()
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.
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.
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:
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:
nos devolverá la lista de alumnos que tienen una nota superior a o igual a 5,
ordenados por nota ascendentemente.
IEnumerable<int> highScoresQuery =
IEnumerable<string> highScoresQuery2 =
from score in scores
where score > 80
orderby score descending
int highScoreCount =
(from score in scores
where score > 80
select score)
.Count();
// 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
orderby countryGroup.Key
select countryGroup;
Console.WriteLine(grouping.Key);
https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-
reference/query-expression-syntax-examples-filtering