TaskContext.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. using System;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.EntityFrameworkCore.Metadata;
  4. // Code scaffolded by EF Core assumes nullable reference types (NRTs) are not used or disabled.
  5. // If you have enabled NRTs for your project, then un-comment the following line:
  6. // #nullable disable
  7. namespace Task1
  8. {
  9. public partial class TaskContext : DbContext
  10. {
  11. public TaskContext()
  12. {
  13. Database.EnsureCreated();
  14. }
  15. public TaskContext(DbContextOptions<TaskContext> options)
  16. : base(options)
  17. {
  18. }
  19. public virtual DbSet<StatusTask> StatusTasks { get; set; }
  20. public virtual DbSet<Task> Tasks { get; set; }
  21. public virtual DbSet<User> Users { get; set; }
  22. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  23. {
  24. if (!optionsBuilder.IsConfigured)
  25. {
  26. optionsBuilder.UseLazyLoadingProxies();
  27. optionsBuilder.UseSqlServer("Data Source=(localdb)\\mssqllocaldb; Initial Catalog=Task;Trusted_Connection=True;");
  28. }
  29. }
  30. protected override void OnModelCreating(ModelBuilder modelBuilder)
  31. {
  32. modelBuilder.Entity<StatusTask>(entity =>
  33. {
  34. entity.HasKey(e => e.Id);
  35. entity.Property(e => e.Name)
  36. .IsRequired()
  37. .HasMaxLength(50);
  38. });
  39. modelBuilder.Entity<Task>(entity =>
  40. {
  41. entity.HasKey(e => e.TaskId);
  42. entity.Property(e => e.Date).HasColumnType("date");
  43. entity.Property(e => e.Description)
  44. .IsRequired()
  45. .HasMaxLength(50);
  46. entity.Property(e => e.Name)
  47. .IsRequired()
  48. .HasMaxLength(50);
  49. entity.HasOne(d => d.StatusTask1)
  50. .WithMany(p => p.Task)
  51. .HasForeignKey(d => d.StatusTaskId)
  52. .OnDelete(DeleteBehavior.ClientSetNull)
  53. .HasConstraintName("FK_Task_StatusTask");
  54. entity.HasOne(d => d.UserAcceptedTask)
  55. .WithMany(p => p.TaskUserAcceptedTask)
  56. .HasForeignKey(d => d.UserAcceptedTaskId)
  57. .OnDelete(DeleteBehavior.ClientSetNull)
  58. .HasConstraintName("FK_Task_User2");
  59. entity.HasOne(d => d.UserCreatedTask)
  60. .WithMany(p => p.TaskUserCreatedTask)
  61. .HasForeignKey(d => d.UserCreatedTaskId)
  62. .OnDelete(DeleteBehavior.ClientSetNull)
  63. .HasConstraintName("FK_Task_User1");
  64. });
  65. modelBuilder.Entity<User>(entity =>
  66. {
  67. entity.HasKey(e => e.UserId);
  68. entity.Property(e => e.Login)
  69. .IsRequired()
  70. .HasMaxLength(50);
  71. entity.Property(e => e.Name)
  72. .IsRequired()
  73. .HasMaxLength(50);
  74. entity.Property(e => e.Password)
  75. .IsRequired()
  76. .HasMaxLength(50);
  77. entity.Property(e => e.Patronimyc).HasMaxLength(50);
  78. entity.Property(e => e.Phone)
  79. .IsRequired()
  80. .HasMaxLength(12)
  81. .IsUnicode(false)
  82. .IsFixedLength();
  83. entity.Property(e => e.Surname)
  84. .IsRequired()
  85. .HasMaxLength(50);
  86. });
  87. OnModelCreatingPartial(modelBuilder);
  88. }
  89. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  90. }
  91. }