Programacion

Que es Entity Framework

Que es Entity Framework

Entity Framework Core es una librería que se utiliza para acceder a bases de datos.

Entity Framework es un ORM (Object Relational Mapping) de codigo abierto exclusivo para aplicaciones .Net

Un ORM es un mapeador de objetos relacionados que nos permite representar en objetos las tablas de una base de datos.

El mapping se hace utilizando lenguajes de programacion orientado a objetos.

EF permite a desarrolladores .NET trabajar con bases de datos utilizando objetos .NET. Esto disminuye el código de acceso a datos que generalmente utilizamos en nuestros desarrollos.

Trabaja con los datos de la base de datos con modelos. Genera un EDM (Entity Data Model) con entidades de distintos tipos de datos. Estos modelos son lo utilizados para realizar las consultas y persistencia en base de datos.

Usa transacciones por defecto al realizar consultas a la base de datos.

Soporta Oracle, SQL Server, MySQL, PosgreSQL y Mongo.

Utiliza LINQ (Language Integrated Query) que es un conjunto de herramientas de Microsoft para consultar la base de datos. El gestor de la base de datos se encargará de traducir las consultas LINQ al lenguaje con el que trabaje nuestra base de datos.

incluye una cache que previene sobrecargas de la base de datos en caso de recibir una misma consulta numerosas veces.

Entity Framework Model es el encargado de guardar como las clases y propiedades de la aplicación mapean con las tablas y columnas de la base de datos.

Hay dos formas de crear el model: con Code First o con EF Designer

Con Code First el desarrollador puede escribir codigo para definir el modelo.

Con EF Designer el desarrollador puede utilizar una interfaz grafica para definir el modelo.

Entity Framework incluye comandos para generar y ejecutar migraciones. También podemos modificar el esquema de la base de datos.

Ventajas de Entity Framework

  • Mejora la velocidad de desarrollo
  • Mejora la seguridad

Como crear un proyecto utilizando Entity Framework

Para crear un nuevo proyecto iremos a la terminal de nuestro sistema operativo (En windows la abrimos con cmd).

En la terminal escribimos el comando:

dotnet new web

dotnet new Crea un nuevo proyecto basado en el template que especifiquemos.

Una vez creado el proyecto podemos acceder al mismo utilizando Visual Code. Para esto desde la misma linea de comandos y sin salir de la carpeta escribimos: code . (code espacio punto)
Luego presionamos la tecla Enter y se abrirá el proyecto con Visual Studio Code.

Si no tienes instalado Visual Studio Code puedes descargarlo desde el siguiente sitio:
https://code.visualstudio.com/

Para agregar distintos componentes a nuestra aplicación recurriremos a nuget.org

NuGet es un administrador de paquetes diseñado para permitir que los desarrolladores compartan código reutilizable. Es una solución de software gratuita y de código abierto.

En NuGet encontraremos todos los paquetes que podemos instalar para .NET

Siempre deberíamos utilizar la última versión estable de cada componente.

Podemos instalar EntityFramework en nuestro proyecto utilizando el siguiente comando desde la terminal de Visual Studio Code:
dotnet add package Microsoft.EntityFrameworkCore –version 7.0.0

Si queremos utilizar EntityFramework con Oracle podemos instalar:
dotnet add package Oracle.EntityFrameworkCore –version 6.21.61

Al terminar de instalar los paquetes notaremos que en el archivo .csproj de nuestro proyecto tendremos algo similar a:

<ItemGroup>

    <PackageReference Include=”Microsoft.EntityFrameworkCore” Version=”7.0.0″ />

    <PackageReference Include=”Microsoft.EntityFrameworkCore.InMemory” Version=”7.0.0″ />

    <PackageReference Include=”Microsoft.EntityFrameworkCore.Relational” Version=”7.0.0″ />

    <PackageReference Include=”Microsoft.EntityFrameworkCore.SqlServer” Version=”7.0.0″ />

  </ItemGroup>

Data Annotations en Entity Framework

Data Annotations son atributos que permiten configurar de manera mas estricta y especifica las propiedades o caracteristicas de nuestros modelos.

[Key]
Utilizando Key nos permite especificar que un item sea considerado como clave.

[Required]
Permite especificar que un campo sea considerado como requerido.

[MaxLength(numero)]
Permite especificar la longitud maxima de un campo.

[ForeignKey(nombredecampo)]
Permite especificar una clave foranea que será la relación con otra tabla.

Most Popular

To Top
$(".comment-click-1172").on("click", function(){ $(".com-click-id-1172").show(); $(".disqus-thread-1172").show(); $(".com-but-1172").hide(); }); // Infinite Scroll $('.infinite-content').infinitescroll({ navSelector: ".nav-links", nextSelector: ".nav-links a:first", itemSelector: ".infinite-post", loading: { msgText: "Loading more posts...", finishedMsg: "Sorry, no more posts" }, errorCallback: function(){ $(".inf-more-but").css("display", "none") } }); $(window).unbind('.infscr'); $(".inf-more-but").click(function(){ $('.infinite-content').infinitescroll('retrieve'); return false; }); $(window).load(function(){ if ($('.nav-links a').length) { $('.inf-more-but').css('display','inline-block'); } else { $('.inf-more-but').css('display','none'); } }); $(window).load(function() { // The slider being synced must be initialized first $('.post-gallery-bot').flexslider({ animation: "slide", controlNav: false, animationLoop: true, slideshow: false, itemWidth: 80, itemMargin: 10, asNavFor: '.post-gallery-top' }); $('.post-gallery-top').flexslider({ animation: "fade", controlNav: false, animationLoop: true, slideshow: false, prevText: "<", nextText: ">", sync: ".post-gallery-bot" }); }); });