Выбор правильного пути: подходы «сначала код» и «сначала база данных» в разработке программного обеспечения.

Мы работали над проектом для крупной компании, используя C# в качестве языка программирования и Entity framework в качестве ORM, обе эти технологии поддерживаются Microsoft.

Entity Framework — это инфраструктура объектно-реляционного сопоставления с открытым исходным кодом для ADO .NET, которая представляет собой технологию доступа к данным. Это означает, что вы можете использовать эту технологию для доступа к данным в базе данных. Что касается C#, мы все знаем, что такое C#.

Как команда, мы обсуждали, выбираем ли мы подход, ориентированный на код, или подход, ориентированный на базу данных. Итак, что это за подходы?

Позвольте мне объяснить вам некоторые вещи, прежде чем мы перейдем к подходам "сначала код" и "сначала база данных", DbContext и DbSet. DbContext — это класс, который действует как мост. между вашими моделями данных и базой данных, он отвечает за поддержание состояния базы данных и предоставление способа взаимодействия с ней через приложение. Он также отвечает за отслеживание изменений в базе данных и их сохранение в базе данных. Он содержит информацию о конфигурации, которая определяет, как сущности сопоставляются со схемой базы данных. Эта конфигурация включает типы сущностей, сопоставление между сущностями и таблицами, отношения между сущностями и любые ограничения или проверки. Свойство DbSet представляет каждую таблицу или представление в базе данных. Эти свойства используются для запроса, обновления, вставки или удаления данных из определенной таблицы базы данных.

Первый подход к коду

Подход «сначала код» — это способ проектирования моделей данных вашего приложения путем создания их как классов C# для ваших моделей, а затем вы используете их для создания своей базы данных. Таким образом, вы можете сосредоточиться на разработке моделей предметной области, а структура сущностей будет обрабатывать создание базы данных.

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

Чтобы применить подход code-first, вам необходимо выполнить следующие шаги:

  • Определите классы вашей модели, каждый класс соответствует таблице в вашей базе данных.
  • Создайте класс DbContext, наследуемый от класса DbContext, предоставляемого Entity Framework.
  • Включите миграцию, чтобы вы могли обновить схему базы данных, чтобы база данных и ваши модели оставались синхронизированными. Используйте консоль диспетчера пакетов, чтобы включить миграцию, используйте для этого команду Enable-Migrations и создайте миграцию с помощью команды Add-Migration ‹MigrationName›.
  • Создайте базу данных через консоль диспетчера пакетов, используйте структуру сущностей для создания базы данных и таблицы. Кроме того, вам нужно написать команду для команды Update-Database.

Примечание: чтобы открыть консоль диспетчера пакетов в Visual Studio, перейдите к ToolsNuGet Package ManagerPackage Manager Console.

В качестве простого примера мы создадим класс модели Person и класс DbContext:

public class Person
{
    public int Id { get; set; }
    public string FullName { get; set; }
    public int Age { get; set; }
}
public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    public MyDbContext() : base("TheConnectionString")
    {
    }
}

Здесь вы можете заметить, что мы передали строку с именем connectionString, это строка параметров, которая предоставляет необходимую информацию для установления соединения с источником данных. Он содержит информацию об источнике данных, такую ​​как имя сервера, имя базы данных и учетные данные для аутентификации.

Примером строки подключения может быть:

Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
  • Data Source: имя или сетевой адрес экземпляра SQL Server, к которому необходимо подключиться.
  • Initial Catalog: имя базы данных для подключения.
  • User ID: идентификатор пользователя, используемый при подключении к источнику данных.
  • Password: пароль для подключения к источнику данных.

Какой код предлагает первый подход?

  • Это добавляет больше скорости процессу разработки. Разработчики могут сосредоточиться на бизнес-логике и данных моделирования, а затем автоматически создать схему базы данных.
  • Вам не нужно редактировать базу данных после того, как вы внесли изменения в свою модель, поскольку они синхронизированы друг с другом, и каждое изменение отслеживается.
  • Он хорошо сочетается с Agile-разработкой.

База данных Первый подход

Первый подход к базе данных — это способ создания моделей данных, начиная с существующей базы данных. Мы создаем наши модели данных и класс DbContext на основе существующей схемы базы данных. Вы начинаете с создания базы данных, включая таблицы, их свойства и отношения между ними. Для создания базы данных вы можете использовать Microsoft SQL Server Studio (мне нравится этот инструмент).

Чтобы применить первый подход к базе данных, вам необходимо выполнить следующие шаги:

  • Создайте/прикрепите свою базу данных.
  • Используйте инфраструктуру сущностей для создания необходимых файлов.
  • Используйте файлы генерации (классы Entity и DbContext).

Пример того, как запрашивать данные с помощью DbContext, будет таким:

public IEnumerable<Person> GetPersons()
        {
            using (myDBContext con = new MyDBContext())
            {
                con.Persons.Load();
                return con.Persons.Local.ToList();
            }
        }

Какой первый подход к базе данных приводит к таблице?

  • Это поможет вам, когда у вас есть сложная схема базы данных.
  • Это дает возможность использовать существующую схему базы данных.
  • Вас будут поддерживать такие инструменты, как Microsoft SQL Server Studio, который мне нравится использовать.