<MyRusakov.ru />

WordPress 6 с Нуля до Гуру

WordPress 6 с Нуля до Гуру

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

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

Помимо уроков к курсу идут упражнения для закрепления материала.

И, наконец, к курсу идёт ценнейший Бонус по тому, как используя ChatGPT и создавая контент для сайта, можно выйти на пассивный доход. Вы наглядно увидите, как зарегистрироваться в ChatGPT (в том числе, и если Вы из России), как правильно выбрать тему для сайта, как правильно генерировать статьи для него(чтобы они индексировались поисковыми системами) и как правильно монетизировать трафик на сайте.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Работа с MySQL .Net EntityFramework

Работа с MySQL .Net EntityFramework

Доброго времени суток! В данной статье мы рассмотрим один из способ подключения и получения данных из MySQL на C#.

Предполагается, что у Вас уже установлена и настроена одна из сред разработки для C#, будь-то Visual Studio, JetBrains Rider или VSCode c плагинами. Поэтому данный вопрос не рассматривается.

Итак, для работы с MySQL из C# нам нужна дополнительная библиотека под названием Pomelo.EntityFrameworkcore.Mysql, которая до безобразия просто устанавливается из репозитория пакетов Nuget.

После установки пакетов приступим к написанию кода.

Базовый класс отвечающий за установку и настройку соединения с базой данных


using Microsoft.EntityFrameworkCore;

namespace Net6MySQL
{
    public sealed class ApplicationContext : DbContext
    {
        // все пользователи будут извлекаться через это свойство
        public DbSet<User>? Users { get; set; }


        public ApplicationContext()
        {
            Database.EnsureCreated();
        }


        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            // настройка подключения к базе данных
            optionsBuilder.UseMySql(
                "server=localhost;user=user1;password=pasword1;database=magazin;", 
                new MySqlServerVersion(new Version(8, 0, 22))
            );
        }
    }
}

Класс User.cs - описывает наш модель - пользователя


using System.ComponentModel.DataAnnotations.Schema;
using Microsoft.EntityFrameworkCore;


namespace Net6MySQL
{
    // указываем название нашей таблицы в базе
    [Table("users_table")]
    // данный атрибут говорит, что у таблицы нет поля Id (в данном случае) - инкрементального идентификатора
    [Keyless]
    public class User
    {
        // описываем поля таблицы
        public string? SSN { get; set; }
        public string? Name { get; set; }
        public string? Birth { get; set; }
        public string? Country { get; set; }
        public string? City { get; set; }
        public string? Street { get; set; }
        public string? House { get; set; }
        public string? Flat { get; set; }


        public override string ToString()
        {
            return $"{nameof(SSN)}: {SSN}, {nameof(Name)}: {Name}, {nameof(Birth)}: {Birth}, {nameof(Country)}: {Country}, " +
                   $"{nameof(City)}: {City}, {nameof(Street)}: {Street}, {nameof(House)}: {House}, {nameof(Flat)}: {Flat}";
        }
    }
}

Класс UserRepository - отвечает за извлечение информации из базы данных и ее сохранения


using Microsoft.EntityFrameworkCore;

namespace Net6MySQL
{
    public class UserRepository
    {
        private readonly ApplicationContext _dbContext;

        // принимает ранее созданный и настроенный контекст базы данных
        public UserRepository(ApplicationContext dbContext)
        {
            _dbContext = dbContext;
        }

        // извлекает всех пользователей из базы данных
        public List<User>? GetUsers()
        {
            return _dbContext.Users?.ToList();
        }

        // возвращает пользователя по его SSN
        public User? GetUserBySSN(string ssn)
        {
            return _dbContext.Users?.FirstOrDefault(user => user.SSN != null && user.SSN.Contains(ssn));
        }


        // поиск пользователя по имени
        public List<User>? GetUsersByName(string name)
        {
            return _dbContext.Users?.Where(user => user.Name != null && EF.Functions.Like(user.Name, $"%{name}%")).ToList();
        }

    }
}

Файл Program.cs - непосредственно использует ранее определенные классы


namespace Net6MySQL
{

    public static class Program
    {
        public static void Main(string[] args)
        {
            // получаем подключение к БД MySQL
            using var db = new ApplicationContext();

            // создаем репозиторий пользователя
            var repo = new UserRepository(db);

            // извлекаем пользователя
            var user = repo.GetUserBySSN("0000000000");
            if(user != null) Console.WriteLine(user);

            var users1 = repo.GetUsersByName("Doe");

            if (users1 == null) return;

            foreach (var user1 in users1)
            {
                Console.WriteLine(user1);
            }
        }
    }

}


Таким образом, мы получаем данные о пользователях из базы данных не написав не единой строчки SQL кода. В этом и состоит главное преимущество подобного подхода с использованием EntityFramework - строки из таблиц базы данных преобразуются фреймворком в объекты языка, с которыми мы уже работаем как обычно.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.