June 13, 2020

Подключаем бд в проект

Привет, ребят! Сегодня мы с вами подключим базу данных к нашему блогу, поэтому давайте приступать

Модель

Для начала нам нужно создать модель( если вы не знаете что это такое, то советую перед изучением данного материала ознакомиться с предыдущем уроком ) нашего поста. Эта модель будет состоять из 4 полей:

  • Id - Это персональный индификатор каждого поста
  • Title - Заголовок поста
  • Text - Основная информация
  • Time - Дата публикации

Этот файл должен находиться в Models и называться Article

namespace Lessontg.Models
{
    public class Article
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Text { get; set; }
        public string Time { get; set; }
    }
}

Context

Установим NuGet пакет EntityFrameworkCore

Теперь напишем Context-файл, он должен находиться в корневой папке проекта и в названии обязательно иметь слово Context. Помимо этого класс Context`а будет наследоваться от DbContext.

Вот код:

namespace Lessontg
{
    public class ArticleContext : DbContext
    {
        public DbSet<Article> articles { get; set; }
        
        public ArticleContext(DbContextOptions<ArticleContext> options)
           : base(options)
        {
            Database.EnsureCreated();
        }
    }
}

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

appsettings

Нам нужно скопировать connection string. Ее можно найти в панели управления Azure Sql Server, в левом меню будет пункт "Строки подключения". Здесь нужно просто скопировать данную вам строчку.

Дальше переходим в .json файл и пишем в нем следующее:

"ConnectionStrings": {
    "DefaultConnection": "Ваша строка для подключения к бд"
  },

Sturtup

Для дальнейшей работы нам нужно установить еще один NuGet-пакет - Microsoft.EntityFrameworkCore.SqlServer

Теперь давайте пропишем все связи и настройки в Sturtup-файле

public void ConfigureServices(IServiceCollection services)
        {
            string connection = Configuration.GetConnectionString("DefaultConnection");
            services.AddDbContext<ArticleContext>(options =>
                options.UseSqlServer(connection));
            services.AddControllersWithViews();
        }

Здесь мы указываем, как найти строку подключения для нашего Context`а

Завершение

Установим еще один NuGet-пакет - Microsoft.EntityFrameworkCore.Tools

Теперь проведем миграцию и обновим данные для таблицы. Для этого нам нужно открыть "Консоль диспетчера пакетов" - Вид -> Другие окна -> Консоль диспетчера пакетов

Теперь нужно провести миграцию:

Add-migration Article -Context ArticleContext
  • Add-migration - это команда чтобы провести миграцию;
  • Article - это имя миграции, оно может быть любое;
  • -Context - это аргумент указывающий, что миграцию нужно провести для определенного контекста;
  • ArticleContext - имя вашего контекста

На сегодня все, в следующем уроке мы начнем взаимодействовать с БД

Удачи, программисты!