Entity Framework CoreEntity Framework Core

Entity Framework (EF) Core — это простая, кроссплатформенная и расширяемая версия популярной технологии доступа к данным Entity Framework с открытым исходным кодом.Entity Framework (EF) Core is a lightweight, extensible, open source and cross-platform version of the popular Entity Framework data access technology.

EF Core может использоваться как объектно реляционный модуль сопоставления (O/RM), позволяя разработчикам .NET работать с базой данных с помощью объектов .NET и устраняя необходимость в написании большей части кода, требуемого для доступа к данным.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 поддерживает множество систем баз данных. Дополнительные сведения см. в разделе Поставщики баз данных.EF Core supports many database engines, see Database Providers for details.

МодельThe Model

В EF Core доступ к данным осуществляется с помощью модели.With EF Core, data access is performed using a model. Модель состоит из классов сущностей и объекта контекста, который представляет сеанс взаимодействия с базой данных, позволяя запрашивать и сохранять данные.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. Дополнительные сведения см. в разделе Создание модели.See Creating a Model to learn more.

Вы можете создать модель из существующей базы данных, вручную составить код модели, соответствующий базе данных, или использовать миграции EF для создания базы данных из модели (и ее модификации по мере изменения модели).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; }
    }
}

Выполнение запросовQuerying

Экземпляры классов сущностей извлекаются из базы данных с помощью LINQ.Instances of your entity classes are retrieved from the database using Language Integrated Query (LINQ). Дополнительные сведения см. в разделе Запросы к данным.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();
}

Сохранение данныхSaving Data

Для создания, удаления и изменения данных в базе данных используются экземпляры классов сущностей.Data is created, deleted, and modified in the database using instances of your entity classes. Дополнительные сведения см. в разделе Сохранение данных.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();
}

Следующие шагиNext steps

Вводные руководства см. в разделе Начало работы с Entity Framework Core.For introductory tutorials, see Getting Started with Entity Framework Core.