Work29Context.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Microsoft.EntityFrameworkCore;
  2. namespace Work29
  3. {
  4. public class Work29Context : DbContext
  5. {
  6. public Work29Context()
  7. {
  8. Database.EnsureCreated();
  9. }
  10. public DbSet<User> Users { get; set; }
  11. public DbSet<Task> Tasks { get; set; }
  12. public DbSet<StatusTask> StatusTasks { get; set; }
  13. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  14. {
  15. optionsBuilder.UseLazyLoadingProxies();
  16. optionsBuilder.UseSqlServer("Data Source=(localdb)\\mssqllocaldb; Initial Catalog=AppDb;Trusted_Connection=True;");
  17. }
  18. protected override void OnModelCreating(ModelBuilder modelBuilder)
  19. {
  20. modelBuilder.Entity<Task>()
  21. .HasOne(m => m.UserCreated)
  22. .WithMany(t => t.UserCreateds)
  23. .HasForeignKey(m => m.UserCreatedId)
  24. .OnDelete(DeleteBehavior.Restrict);
  25. modelBuilder.Entity<Task>()
  26. .HasOne(m => m.UserAccepted)
  27. .WithMany(t => t.UserAccepteds)
  28. .HasForeignKey(m => m.UserAcceptedId)
  29. .OnDelete(DeleteBehavior.Restrict);
  30. modelBuilder.Entity<Task>()
  31. .HasOne(m => m.StatusTask)
  32. .WithMany(t => t.Tasks)
  33. .HasForeignKey(m => m.StatusTaskId)
  34. .OnDelete(DeleteBehavior.Restrict);
  35. }
  36. }
  37. }