/
Kovalenko
/
TODO
Обзор
Документация
Войти
/
Kovalenko
/
TODO
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
TaskApi/Data/AppDbContext.cs
50 строк
2 KB
Kovalenko1
Done
29 дек 2025, 11:50
29 дек 2025, 11:50
f453b3b
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using TaskApi.Models; namespace TaskApi.Data; public class AppDbContext : DbContext { public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } public DbSet<User> Users => Set<User>(); public DbSet<TaskItem> Tasks => Set<TaskItem>(); public DbSet<IdempotencyKey> IdempotencyKeys => Set<IdempotencyKey>(); protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<User>(entity => { entity.HasIndex(user => user.Email).IsUnique(); entity.Property(user => user.Email).IsRequired(); entity.Property(user => user.PasswordHash).IsRequired(); }); modelBuilder.Entity<TaskItem>(entity => { entity.Property(task => task.Title).IsRequired(); entity.Property(task => task.Description).IsRequired(); entity.Property(task => task.Status).HasConversion<string>().HasMaxLength(32); entity.HasOne(task => task.User) .WithMany(user => user.Tasks) .HasForeignKey(task => task.UserId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity<IdempotencyKey>(entity => { entity.HasIndex(key => new { key.UserId, key.Key }).IsUnique(); entity.Property(key => key.Key).IsRequired(); entity.Property(key => key.RequestHash).IsRequired(); entity.HasOne(key => key.User) .WithMany(user => user.IdempotencyKeys) .HasForeignKey(key => key.UserId) .OnDelete(DeleteBehavior.Cascade); }); } }