Ответ
Да, использовал. Code First — это подход к работе с данными, при котором разработка начинается с написания классов сущностей (доменной модели) на C#, а схема базы данных генерируется из этого кода.
Типичный рабочий процесс:
- Определение классов-сущностей и контекста данных (DbContext).
- Создание миграции на основе модели (
Add-Migration InitialCreate). - Применение миграции для создания или обновления БД (
Update-Database).
Пример базовой настройки:
// 1. Класс-сущность
public class Blog
{
public int Id { get; set; } // По соглашению станет первичным ключом
public string Url { get; set; } = string.Empty;
public int Rating { get; set; }
public List<Post> Posts { get; set; } = new(); // Навигационное свойство
}
// 2. Контекст данных
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(@"Server=(localdb)mssqllocaldb;Database=BloggingDB;Trusted_Connection=True;");
}
Преимущества подхода:
- Контроль над кодом: Модель данных — это чистый C# код, который легко версионировать и рефакторить.
- Миграции: Позволяют инкрементально и контролируемо изменять схему БД, синхронизируя её с изменяющейся моделью.
- Быстрое прототипирование: Не требуется предварительное проектирование БД.
Для сложных сценариев используется Fluent API в методе OnModelCreating для тонкой настройки отношений, индексов, имен таблиц/столбцов и правил каскадного удаления, которые сложно или невозможно выразить через атрибуты.