Descripción general de Entity Framework CoreEntity Framework Core Quick Overview

Entity Framework (EF) Core es una versión ligera, extensible y multiplataforma de la popular tecnología de acceso a datos Entity Framework.Entity Framework (EF) Core is a lightweight, extensible, and cross-platform version of the popular Entity Framework data access technology.

EF Core puede servir como asignador relacional de objetos (O/RM), lo que permite a los desarrolladores de .NET trabajar con una base de datos mediante objetos .NET y eliminar la mayoría del código de acceso a los datos que normalmente deben escribir.EF Core can serve as an object-relational mapper (O/RM), enabling .NET developers to work with a database using .NET objects, and eliminating the need for most of the data-access code they usually need to write.

EF Core es compatible con muchos motores de base de datos; vea Proveedores de bases de datos para más información.EF Core supports many database engines, see Database Providers for details.

Si quiere aprender mediante la escritura de código, se recomienda usar una de las guías de introducción para empezar a trabajar con EF Core.If you like to learn by writing code, we'd recommend one of our Getting Started guides to get you started with EF Core.

Novedades de EF CoreWhat is new in EF Core

Si está familiarizado con EF Core y quiere ir directamente a los detalles de las versiones más recientes:If you are familiar with EF Core and want to jump straight into the details of the latest releases:

Obtener Entity Framework CoreGet Entity Framework Core

Instale el paquete NuGet correspondiente al proveedor de base de datos que quiera usar.Install the NuGet package for the database provider you want to use. Por ejemplo, para instalar el proveedor de SQL Server en el desarrollo multiplataforma mediante la herramienta dotnet en la línea de comandos:For example, to install the SQL Server provider in cross-platform development using dotnet tool in the command line:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

O en Visual Studio, con la Consola del administrador de paquetes:Or in Visual Studio, using the Package Manager Console:

Install-Package Microsoft.EntityFrameworkCore.SqlServer

Vea Proveedores de bases de datos para más información sobre los proveedores disponibles e Instalación de EF Core para obtener pasos de instalación detallados.See Database Providers for information on available providers and Installing EF Core for more detailed installation steps.

El modeloThe Model

Con EF Core, el acceso a datos se realiza mediante un modelo.With EF Core, data access is performed using a model. Un modelo se compone de clases de entidad y un contexto derivado que representa una sesión con la base de datos, lo que permite consultar y guardar los datos.A model is made up of entity classes and a derived context that represents a session with the database, allowing you to query and save data. Vea Creación de un modelo para más información.See Creating a Model to learn more.

Puede generar un modelo a partir de una base de datos existente, codificar manualmente un modelo para que coincida con la base de datos o usar migraciones de EF para crear una base de datos a partir del modelo (y que evolucione a medida que cambia el modelo).You can generate a model from an existing database, hand code a model to match your database, or use EF Migrations to create a database from your model (and evolve it as your model changes over time).

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;

namespace Intro
{
    public class BloggingContext : DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
        }
    }

    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
        public int Rating { get; set; }
        public List<Post> Posts { get; set; }
    }

    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}

ConsultasQuerying

Las instancias de las clases de entidad se recuperan de la base de datos mediante Language Integrated Query (LINQ).Instances of your entity classes are retrieved from the database using Language Integrated Query (LINQ). Vea Consulta de datos para más información.See Querying Data to learn more.

using (var db = new BloggingContext())
{
    var blogs = db.Blogs
        .Where(b => b.Rating > 3)
        .OrderBy(b => b.Url)
        .ToList();
}

Guardado de datosSaving Data

Los datos se crean, se eliminan y se modifican en la base de datos mediante instancias de las clases de entidad.Data is created, deleted, and modified in the database using instances of your entity classes. Vea Guardado de datos para más información.See Saving Data to learn more.

using (var db = new BloggingContext())
{
    var blog = new Blog { Url = "http://sample.com" };
    db.Blogs.Add(blog);
    db.SaveChanges();
}