#6 - Фреймворк Entity. Работа с базой данных

#6 - Фреймворк Entity. Работа с базой данных

Для работы с базами данных можно использовать фреймворк Entity, который облегчает настройку и взаимодействие с БД. В уроке вы создадите базу данных, а также научитесь работать с фреймворком Entity.

Видеоурок

Entity Framework – это отличное ORM-решение, помогающее в автоматическом режиме связывать простые классы C# с внутренними таблицами БД. Фреймворк направлен преимущественно на работу с СУБД MS SQL Server, но включает поддержку и остальных СУБД. В рамках текущего материала работает с БД MS SQL Server.


Для создания взаимодействия с сервером посредством Entity Framework нужно иметь пакет Microsoft.EntityFrameworkCore.SqlServer. Помимо этого, нужно выполнить подготовительную работу по созданию нужной БД, соответствующей моделям. Выполнить необходимое поможет Microsoft.EntityFrameworkCore.Tools. Если устанавливаем ASP .NET Core 2.0 или новее, перечисленные пакеты являются встроенными.


Для начала работы с базой данных посредством фреймворка нужен класс, который унаследовал свои свойства от Microsoft.EntityFrameworkCore.DbContext. Имея это ввиду, добавляем в каталог «Models» новый класс с названием «AppDBContext»:

using Microsoft.EntityFrameworkCore;
 
namespace Shop.Models {
	public class AppDBContext : DbContext {
		public DbSet<TVModel> tv { get; set; }
		public AppDBContext(DbContextOptions<AppDBContext> options) : base(options) {
			Database.EnsureCreated();
		}
	}
}


Параметр DbSet включает в себя список объектов, сопоставимый с данными таблицы в БД. Руководствуясь базовыми рекомендациями, название модели нужно создавать в множественном числе, придерживаясь правил английского языка. Наглядный пример, наименование класса в модели не phone, нужно указывать слово phones.


С помощью параметра options, в контекстный конструктор данных поступают настройки для контекста. Уже внутри конструктора создаётся база данных Database.EnsureCreated(), если она не была создана ранее.

Для связи с базой данных нужно передать параметры подключения. Нужные значения указываем в файле appsettings.json. В него добавляем следующие строки:

{
	"ConnectionStrings": {
		"DefaultConnection": "Server=(localdb)\mssqllocaldb;Database=mobilesdb;Trusted_Connection=True;"
	}
}


В приведённом примере использует простейший движок БД – LocalDB. Он представляет собой облегчённый вариант SQL Server Express, ориентированный на создание приложений.


Последнее действие по настройке проекта – редактирование файла Startup.cs. Здесь нас интересует метод ConfigureServices(), его нужно редактировать.

using Shop.Models;
using Microsoft.EntityFrameworkCore;
 
namespace Shop {
	public class Startup {
		public Startup(IConfiguration configuration) {
			Configuration = configuration;
		}
 
		public IConfiguration Configuration { get; }   
		
		public void ConfigureServices(IServiceCollection services) {
			// получаем строку подключения из файла конфигурации
			string connection = Configuration.GetConnectionString("DefaultConnection");
			// добавляем контекст AppDBContext в качестве сервиса в приложение
			services.AddDbContext<AppDBContext>(options => options.UseSqlServer(connection));
			services.AddMvc();
		}
	}
}


Включение контекста данных посредством сервиса обеспечивает возможность вызывать его в конструкторе контроллера, используя алгоритм внедрения зависимостей.

Материалы для курса

Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение C#, ASP.NET и создание Windows программ
Изучение языка C# для начинающих
26 уроков
Уроки C# под Unity 5 для начинающих
9 уроков
Программа на C# .NET Windows Forms
7 уроков