Курс ASP.NET

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

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

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

Видеоурок

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 месяца

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

Изучение C# WPF на практике. Создание программ на C#
10 уроков
Уроки Unity C# для начинающих
11 уроков
Изучение C# и создание Windows программ
Xamarin Forms / Мобильные приложения на C#
10 уроков
Программа на C# .NET Windows Forms
7 уроков
Изучение языка C# для начинающих
26 уроков
Комментарии
Добавить комментарий

Пока комментариев нет