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

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

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

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

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

Також варто подивитися

Разработка 2D игры на C# WinForms
8 уроків
Программа на C# .NET Windows Forms
7 уроків
Создание C# WPF игры / Разработка игры с дизайном
6 уроків
Изучение C# WPF на практике. Создание программ на C#
10 уроків
Xamarin Forms / Мобильные приложения на C#
10 уроків
Вивчення C# та створення Windows програм
Коментарі
Додати коментар

Поки що коментарів немає