TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2505 2.29K
День 2073. #ЗаметкиНаПолях
Реалистичные Фейковые Данные с Помощью Bogus. Окончание

Начало
Продолжение

Заполнение БД в памяти фиктивными данными
Используем Entity Framework для БД в памяти. Для этого нужно установить NuGet-пакет Microsoft.EntityFrameworkCore.InMemory.

Теперь добавим класс DbContext и зададим БД в памяти:
public class BooksDbContext : DbContext
{
public DbSet<Book> Books { get; set; }

protected override void
OnConfiguring(DbContextOptionsBuilder builder)
{
builder.UseInMemoryDatabase("BooksDatabase");
}
}


Теперь можно заполнить БД данными, сгенерированными Bogus, переопределив метод OnModelCreating:
protected override void 
OnModelCreating(ModelBuilder mb)
{
base.OnModelCreating(mb);

var books =
BogusBookGenerator.GenerateBooks(15);
mb.Entity<Book>().HasData(books);
}

Здесь мы используем метод GenerateBooks, описанный во вчерашнем посте, и задаём полученный список книг в качестве содержимого набора данных Books.

Теперь можно прочитать данные из нашей БД:
using var ctx = new BooksDbContext();
ctx.Database.EnsureCreated();

var allBooks = await ctx.Books.ToListAsync();

var thrillers = ctx.Books
.Where(b => b.Genres.Contains(Genre.Thriller))
.ToList();

Изучите все потенциальные возможности Bogus здесь. Это поможет сделать ваши тесты и эксперименты осмысленными и более понятными.

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

Источник: https://www.code4it.dev/blog/seed-inmemory-entityframework-bogus/
  • 👍 14
More from @netdeveloperdiary
  1. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  2. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  3. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  4. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  5. Oct 3, 2026Post #3360
  6. Oct 3, 2026День 2803. #Оффтоп Чем Заняться, Пока Работают Агенты? У VS Code Есть Ответ Сейчас большую…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →