/
rumina-v
/
database
Обзор
Документация
Войти
/
rumina-v
/
database
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
LibraryApp/Data/AppDbContext.cs
103 строки
3 KB
Viktoria Rumina
Add solution files
04 июн 2026, 12:13
04 июн 2026, 12:13
73cfef0
Код
Авторство
О чём код?
using LibraryApp.Entities; using Microsoft.EntityFrameworkCore; namespace LibraryApp.Data; public class AppDbContext : DbContext { public DbSet<Reader> Readers => Set<Reader>(); public DbSet<ReaderProfile> ReaderProfiles => Set<ReaderProfile>(); public DbSet<Book> Books => Set<Book>(); public DbSet<Loan> Loans => Set<Loan>(); public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<Reader>(entity => { entity.HasKey(x => x.Id); entity.Property(x => x.FullName) .HasMaxLength(200) .IsRequired(); entity.Property(x => x.Email) .HasMaxLength(200) .IsRequired(); entity.Property(x => x.RegisteredAt) .IsRequired(); entity.HasOne(x => x.Profile) .WithOne(x => x.Reader) .HasForeignKey<ReaderProfile>(x => x.ReaderId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity<ReaderProfile>(entity => { entity.HasKey(x => x.Id); entity.Property(x => x.Phone) .HasMaxLength(30); entity.Property(x => x.Address) .HasMaxLength(300); entity.HasIndex(x => x.ReaderId) .IsUnique(); }); modelBuilder.Entity<Book>(entity => { entity.HasKey(x => x.Id); entity.Property(x => x.Title) .HasMaxLength(300) .IsRequired(); entity.Property(x => x.Author) .HasMaxLength(200) .IsRequired(); entity.Property(x => x.PublishYear) .IsRequired(); entity.Property(x => x.TotalCopies) .IsRequired(); entity.Property(x => x.AvailableCopies) .IsRequired(); }); modelBuilder.Entity<Loan>(entity => { entity.HasKey(x => x.Id); entity.Property(x => x.Status) .HasMaxLength(50) .IsRequired(); entity.Property(x => x.IssuedAt) .IsRequired(); entity.Property(x => x.DueDate) .IsRequired(); entity.HasOne(x => x.Reader) .WithMany(x => x.Loans) .HasForeignKey(x => x.ReaderId) .OnDelete(DeleteBehavior.Cascade); entity.HasOne(x => x.Book) .WithMany(x => x.Loans) .HasForeignKey(x => x.BookId) .OnDelete(DeleteBehavior.Cascade); }); } }