5 минут на создание 1 миллиона фейковых данных с помощью ASP.NET Core 8 — Bogus ⚡⏱️

Oguz Evrensel
nacressoftware
Published in
5 min readApr 24, 2024

Всем Здравствуйте, в этой статье я расскажу вам, как за менее чем 5 минут создать миллионы фейковых данных

В нашей программной жизни иногда нам нужно много фейковых данных))

Ну, как же мы это сделаем?

Ответ очень легко..

Создание фейковых данных возможно с помощью пакета Bogus .Net, который был загружен более 72 миллионов раз

Для получения более подробной информации вы можете обратиться к официальному аккаунту NuGet.

Теперь давайте рассмотрим, как это можно сделать шаг за шагом в пустом проекте ASP.NET Core !

Этап 1: Создание пустого проекта.

Давайте создаем консольное приложение с помощью пустого ASP.NET Core 8.

Создание консольного приложения

Этап 2: Загрузка пакетов NuGet в наше приложение.

Какие пакеты нам следует скачать для нашего приложения?

Конечно, согласно основной цели этой статьи, нам следует в первую очередь скачать пакет Bogus))

1- Bogus

Пакет NuGet Bogus

В качестве базы данных я буду использовать Microsoft SQL Server, а я ORM выбрал Entity Framework.

Используя подход Code First в Entity Framework, я создам новую таблицу в базе данных и буду использовать Package Manager Console.

Для этого нам потребуется последовательно скачать следующие пакеты.

1- Microsoft.EntityFrameworkCore.Design

2- Microsoft.EntityFrameworkCore.SqlServer

3- Microsoft.EntityFrameworkCore.Tools

Менеджер пакетов NuGet

После успешной установки необходимых пакетов в наш проект, мы наконец можем начать программирование))

Этап 3: Создание класса “User”

Давайте создаем новую папку под названием «Entity» и внутри этой папки создаем наш класс “User”.

public class User
{

public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public DateTime DateOfBirth { get; set; }
}
“User” класс

Этап 4: Создание нашего класса “DataContext”.

Я создал класс DataContext для операций с базой данных.

Этот класс наследуется от DbContext, который предоставляется библиотекой Microsoft.EntityFrameworkCore.

public class DataContext : DbContext
{
public DbSet<User> Users { get; set; }

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{

optionsBuilder.UseSqlServer(@"Ваша строка подключения");
}
}
DataContext класс

Этап 5: Создание миграции и обновление базы данных

Мы создали наш класс DataContext, a что дальше?

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

Для этого в верхнем меню Visual Studio откроем нашу консоль Package Manager Console и последовательно введем следующие команды.

Tools => NuGet Package Manager => Package Manager Console

Add-Migration InitialCreate
Update-Database
Package Manager Console

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

Microsoft Sql Server

Этап 6: Создание нашего класса “FakeDataGenerate”

Я создал папку под названием “Services” и внутри неё создал класс “FakeDataGenerate”.

Структура файлов
public class FakeDataGenerate
{
private readonly DataContext _context;

public FakeDataGenerate(DataContext context)
{
_context = context;
}

public void GenerateAndSaveData()
{
var userFaker = new Faker<User>()
.RuleFor(u => u.Name, f => f.Name.FullName())
.RuleFor(u => u.Email, f => f.Internet.Email())
.RuleFor(u => u.DateOfBirth, f => f.Date.Past(30));

var users = userFaker.GenerateLazy(1000000);

Console.WriteLine("Данные сохраняются в SQL Server...");

_context.Users.AddRange(users);
_context.SaveChanges();

Console.WriteLine("Процесс сохранения данных завершен.");
}

}

Мы создаем объект нашего класса DataContext и используем его с помощью конструктора и метода внедрения зависимостей (Dependency Injection).

Этот подход улучшает тестируемость кода и упрощает управление зависимостями

FakeDataGenerate класс

Этап 6: Вызов метода ‘GenerateAndSaveData’ в нашем главном методе.

В консольных приложениях наша программа сначала запускает наш главный метод “Main”.

Мы должны вызвать созданный нами метод ‘GenerateAndSaveData’ внутри нашего главного метода “Main”.

static void Main(string[] args)
{
using var context = new DataContext();
var fakeDataGenerate = new FakeDataGenerate(context);

fakeDataGenerate.GenerateAndSaveData();
}

Мы создаем экземпляр нашего контекста.

Затем создаем объект нашего класса “FakeDataGenerate” и передаем в него в качестве параметра наш контекст.

После этого вызываем наш метод “GenerateAndSaveData”.

Main метод

Этап 7: Запуск нашего приложения.

Мы подошли к самой лучшей части!

Запуск приложения и наблюдение за результатом))

Запуск приложения

Если все прошло правильно, то вы должны увидеть экран, как описано выше.

Через короткое время вы сможете увидеть, что процесс завершен.

Запуск приложения

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

Если вы не сможете решить проблему, вы можете связаться со мной, и я с удовольствием помогу вам.

Наконец, если мы посмотрим на нашу базу данных, мы сможем увидеть, что фейковые данные были успешно созданы.

Фейковые данные SQL Serve

Действительно ли у нас есть миллион данных, как мы планировали?

Давайте напишем наш SQL-запрос.

SELECT COUNT(*) FROM Users;
SELECT COUNT(*) FROM Users;

Исходный код доступен по следующей ссылке на GitHub:

https://github.com/oguzevrensel/-ASP.NET-Core-8---Bogus

Создание фейковых данных с помощью Bogus действительно так просто))

Надеюсь, что эта статья была полезной для вас.

С уважением, Огуз Eвренсель

--

--

Oguz Evrensel
nacressoftware

Software Engineer at SGS (Eastern Europe Middle East) via Nacres Software Technology