/
GhostIn
/
MatuningApi
Обзор
Документация
Войти
/
GhostIn
/
MatuningApi
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
laba/four
Matuning/Infrastructure/ApplicationDbContext.cs
80 строк
3 KB
GhostInn
remake for good working
20 дек 2024, 23:34
20 дек 2024, 23:34
5048fb9
Код
Авторство
О чём код?
using Matuning.Domain.Models.Cars; using Matuning.Domain.Models.Conversations; using Matuning.Domain.Models.Parts; using Matuning.Domain.Models.Reports; using Matuning.Domain.Models.Users; using Microsoft.EntityFrameworkCore; namespace Matuning.Infrastructure; public class ApplicationDbContext : DbContext { public DbSet<Report> Reports { get; set; } public DbSet<User> Users { get; set; } public DbSet<Car> Cars { get; set; } public DbSet<Conversation> Conversations { get; set; } public DbSet<ConversationParticipant> ConversationParticipants { get; set; } public DbSet<PartStatus> PartStatuses { get; set; } public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } // Дополнительная конфигурация модели при необходимости protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); // Конфигурация сущности User modelBuilder.Entity<User>(entity => { entity.HasKey(e => e.UserId); entity.Property(e => e.Username).IsRequired().HasMaxLength(100); entity.Property(e => e.Email).HasMaxLength(200); entity.Property(e => e.PasswordHash).IsRequired().HasMaxLength(256); entity.Property(e => e.RegistrationDate); }); // Конфигурация сущности Report modelBuilder.Entity<Report>(entity => { entity.HasKey(e => e.ReportId); entity.Property(e => e.Title).IsRequired().HasMaxLength(200); entity.Property(e => e.Description).IsRequired(); entity.Property(e => e.Timestamp).IsRequired(); }); // Конфигурация сущности Conversation modelBuilder.Entity<Conversation>(entity => { entity.HasKey(e => e.ConversationId); // Добавьте дополнительные настройки, если необходимо }); // Конфигурация сущности ConversationParticipant modelBuilder.Entity<ConversationParticipant>(entity => { // Определяем составной первичный ключ entity.HasKey(cp => new { cp.ConversationId, cp.UserId }); // Настраиваем отношение многие-ко-многим с Conversation entity.HasOne(cp => cp.Conversation) .WithMany(c => c.Participants) .HasForeignKey(cp => cp.ConversationId) .OnDelete(DeleteBehavior.Cascade); // Настройте дополнительные свойства, если необходимо }); modelBuilder.Entity<PartStatus>(entity => { entity.HasKey(e => e.PartStatusId); // Определение первичного ключа entity.Property(e => e.StatusName).IsRequired().HasMaxLength(100); // Дополнительные настройки, если необходимо }); // Добавьте другие сущности и их настройки по мере необходимости } }