dir.by  
  Search  
Programming, development, testing
Entity Framework (EF5, EF6) для работы с базой данных на C#
Что такое Entity Framework?
  Looked at 7738 times    
 Что такое Entity Framework? 
last updated: 21 July 2022
Entity Framework это объектно-ориентированная технология для работы с базой данных через C# классы.
C# класс в Entity Framework сопоставляется таблице в базе данных.

Технология ADO.NET позволяет создавать подключения к базе данных, выполнять Microsoft SQL команды для взаимодействия с базой данных.
То есть в ADO.NET мы оперируем таблицами, колонками, индексами, первичными и внешними ключами.

Entity Framework представляет собой более высокий уровень абстракции, который позволяет абстрагироваться от самой базы данных и работать с базой данных в виде C# классов (объектов)

Entity Framework предоставляет преимущества:
• вам не нужно знать деталей работы Базы данных SQL Server
• вам не нужно знать деталей синтаксиса языка SQL
Entity Framework берет на себя обязанности по преобразованию C# кода в SQL-инструкции.

Концепция Entity Framework
Главным в концепции Entity Framework является понятие сущности (entity).
Сущность (entity) в Entity Framework это C# класс
Шаг 1 Сущность в Entity Framework.
Сущность (entity) это C# класс
В C# классе обязательно должно быть поле id или ID или Id (это primary key в Базе данных)

Пример
public class Book
{
    public int Id { get; set; } // обязательное поле
    public string Name { get; set; }
    public int Price { get; set; }
}
сопоставляется таблице в Базе данных

Название таблицы в Базе данных образуется от названия C# класса Book с добавлением буквы s

Таблица Books в Базе Данных
Колонка Id
Колонка Name
Колонка Price
Шаг 2 Подключение Entity Framework к Базе данных.
Для подключения к Базе данных нам нужен контекст данных. Пишем свой класс отнаследованный от класса DbContext

Пример
class MyContext : DbContext
{
    // MyConnection1 строка соединения к базе данных
    // MyConnection1 строка соединения описана в .config файле
    public MyContext() : base("MyConnection1")
    { }

    // DbSet это массив данных
    public DbSet<Book> Books { get; set; }
}
Шаг 3 Добавляем соединение к базе данных в файле App.config или Web.config
Файл зависит от типа Вашего приложения.
Читать подробнее <connectionStrings> в .config файле...
Шаг 4 Добавление данных в Entity Framework.

Пример
using (UserContext db = new UserContext())
{
      // создаем объект Book
      Book book1 = new Book { Name = "Граф Монтекристо", Price = 123 };

      // добавляем объект Book в контекст данных
      db.Books.Add(book1);

      // сохраняем контекст данных в базу данных
      db.SaveChanges();
}
Подходы в Entity Framework
Code-First. Подходит для программистов.
Вы пишите C# класс, а затем Entity Framework по этому C# классу создает таблицу в Базе данных.
Auto Code-First.
Вы выбираете базу данных, а Entity Framework смотрит на таблицы в базе данных и создает C# классы
Database-First. Подходит для проектировщиков баз данных.
Сначала вы создаете базу данных с помощью различных инструментов (например в SQL Server Management Studio), а затем генерируете EDMX-модель базы данных (предоставляет удобный графический интерфейс для взаимодействия с базой данных в виде диаграмм и объектную модель в виде классов C#). В данном случае вам нужно работать с SQL Server и хорошо знать синтаксис T-SQL, но при этом не нужно разбираться в C#.
Model-First. Подходит для архитекторов.
Сначала вы создаете графическую модель EDMX в Visual Studio (в фоновом режиме создаются классы C# модели), а затем генерируете на основе диаграммы EDMX базу данных. При данном подходе не нужно знать ни деталей T-SQL ни синтаксиса C#.
 
 
Next topic →
Соглашения по преобразование типов, наименованию таблиц в Entity Framework
 
Your feedback ... Comments ...
   
Your Name
Your comment (www links can only be added by a logged-in user)

  Объявления  
  Объявления  
 
Что такое Entity Framework?
Типы в Entity Framework
Соглашения по преобразование типов, наименованию таблиц в Entity Framework
Внешний ключ (Foreign Key) и каскадное удаление
DateTime & только Date & только Time в Entity Framework
Code First
Code First. Мы пишем C# класс. Entity Framework по нашему C# классу → создает и заполняет таблицу в базе данных
Auto Code First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Database First
Database First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Model First
Model First. Мы создаем модель в Visual Studio. По модели Entity Framework → создает C# классы и Базу данных
Работа с данными
Перебор данных в Entity Framework
Добавление данных в Entity Framework
Изменение (редактирование) данных в Entity Framework
Удаление данных в Entity Framework
Инициализация и миграция базы данных
Инициализация базы данных в Entity Framework. DropCreateDatabaseAlways позволяет при каждом новом запуске заполнять базу данных заново
Выполнение миграции Базы Данных в Entity Framework (если уже кто-то раньше сделал cs файл миграции, а мне хочется обновить у себя на компютере базу данных я выполняю миграцию то есть вызываю EntityFramework\Update-Database)
Создание и выполнение миграции Базы Данных в Entity Framework (я поменял c# класс, потом вызываю EntityFramework\add-migration т.е. автоматически добавляется в проект cs файл с кодом миграции, потом вызываю EntityFramework\Update-Database т.е. выполняется файл миграции и меняется база данных)
SQL в Entity Framework
SQL команды в Entity Framework
Транзакции в Entity Framework
Управление транзакциями в Entity Framework
Дополнительные темы, вопросы
Что такое <connectionStrings> в .config файле для Entity Framework (EF5, EF6)
При вызове EntityFramework\Update-Database появляется ошибка "System.Data.SqlClient.SqlException (0x80131904). A network-related or instance-specific error occurred while establishing a connection to SQL Server."
При вызове EntityFramework\Update-Database появляется ошибка "Your startup project '...' doesn't reference Microsoft.EntityFrameworkCore.Design"
WWW сайты для изучения Entity Framework
Сайты для изучения Entity Framework

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика