Entity Framework CoreEntity Framework Core

Entity Framework (EF) Core è una versione semplice, estendibile, open source e multipiattaforma della tecnologia di accesso ai dati di grande diffusione Entity Framework.Entity Framework (EF) Core is a lightweight, extensible, open source and cross-platform version of the popular Entity Framework data access technology.

Entity Framework Core può essere usato come mapper relazionale a oggetti (O/RM), consentendo agli sviluppatori .NET di utilizzare un database con oggetti .NET ed eliminando la necessità della maggior parte del codice di accesso ai dati che è in genere necessario scrivere.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 supporta molti motori di database. Per informazioni dettagliate, vedere Provider di Database.EF Core supports many database engines, see Database Providers for details.

Il modelloThe Model

Con Entity Framework Core, l'accesso ai dati viene eseguito tramite un modello.With EF Core, data access is performed using a model. Un modello è costituito da classi di entità e da un contesto dell'oggetto che rappresenta una sessione con il database che consente di eseguire una query e salvare i dati.A model is made up of entity classes and a context object that represents a session with the database, allowing you to query and save data. Per altre informazioni, vedere Creazione di un modello.See Creating a Model to learn more.

È possibile generare un modello da un database esistente, scrivere manualmente il codice di un modello in modo che corrisponda al database o usare migrazioni di Entity Framework per creare un database a partire dal modello e quindi svilupparlo man mano che il modello cambia nel tempo.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 then 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=Blogging;Integrated Security=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; }
    }
}

QueryQuerying

Le istanze di classi di entità vengono recuperate dal database tramite LINQ (Language Integrated Query).Instances of your entity classes are retrieved from the database using Language Integrated Query (LINQ). Per altre informazioni, vedere Esecuzione di query su dati.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();
}

Salvataggio di datiSaving Data

I dati vengano creati, eliminati e modificati nel database tramite le istanze di classi di entità.Data is created, deleted, and modified in the database using instances of your entity classes. Per altre informazioni, vedere Salvataggio di dati.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();
}

Passaggi successiviNext steps

Per le esercitazioni introduttive, vedere Introduzione a Entity Framework Core.For introductory tutorials, see Getting Started with Entity Framework Core.