spDbContext.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. using Microsoft.EntityFrameworkCore;
  2. using Microsoft.Extensions.Configuration;
  3. using System.Configuration;
  4. using wispro.sp.entity;
  5. namespace wispro.sp.api
  6. {
  7. public partial class spDbContext : DbContext
  8. {
  9. public spDbContext()
  10. {
  11. }
  12. public spDbContext(DbContextOptions<spDbContext> options)
  13. : base(options)
  14. {
  15. }
  16. public virtual DbSet<Customer> Customers { get; set; }
  17. public virtual DbSet<ItemStaff> ItemStaffs { get; set; }
  18. public virtual DbSet<PerformanceItem> PerformanceItems { get; set; }
  19. public virtual DbSet<StaffGrade> StaffGrades { get; set; }
  20. public virtual DbSet<VerifyCoefficient> VerifyCoefficients { get; set; }
  21. public virtual DbSet<Staff> Staffs { get; set; }
  22. public virtual DbSet<Message> Messages { get; set; }
  23. public virtual DbSet<MessageReadRecord> MessageReadRecords { get;set;}
  24. public virtual DbSet<MessagePerformanceItem> MessagePerformanceItems { get; set; }
  25. public virtual DbSet<AttachFile> AttachFiles { get; set; }
  26. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  27. {
  28. if (!optionsBuilder.IsConfigured)
  29. {
  30. optionsBuilder.UseSqlServer("Data Source=(local);Initial Catalog=spDB;User ID=sa;Password=Lqftiu807005");// Configuration.GetConnectionString("DefaultConnect"));
  31. //ConfigurationManager.AppSettings["ValidAudience"]
  32. }
  33. }
  34. protected override void OnModelCreating(ModelBuilder modelBuilder)
  35. {
  36. modelBuilder.Entity<Customer>(entity =>
  37. {
  38. entity.ToTable("Customer");
  39. entity.Property(e => e.Address).HasMaxLength(500);
  40. entity.Property(e => e.ContactMan).HasMaxLength(50);
  41. entity.Property(e => e.Name)
  42. .IsRequired()
  43. .HasMaxLength(200);
  44. entity.Property(e => e.Phone).HasMaxLength(50);
  45. entity.HasOne(d => d.ResponseMan)
  46. .WithMany(p => p.Customers)
  47. .HasForeignKey(d => d.ResponseManId)
  48. .HasConstraintName("FK_Customer_Staff");
  49. });
  50. modelBuilder.Entity<ItemStaff>(entity =>
  51. {
  52. entity.HasKey(e => new { e.ItemId, e.DoPersonId });
  53. entity.ToTable("ItemStaff");
  54. entity.Property(e => e.PerformancePoint);//.HasColumnType("numeric(18, 2)");
  55. entity.HasOne(d => d.DoPerson)
  56. .WithMany(p => p.ItemStaffs)
  57. .HasForeignKey(d => d.DoPersonId)
  58. .OnDelete(DeleteBehavior.ClientSetNull)
  59. .HasConstraintName("FK_ItemStaff_Staff");
  60. entity.HasOne(d => d.Item)
  61. .WithMany(p => p.ItemStaffs)
  62. .HasForeignKey(d => d.ItemId)
  63. .OnDelete(DeleteBehavior.ClientSetNull)
  64. .HasConstraintName("FK_ItemStaff_PerformanceItem");
  65. });
  66. modelBuilder.Entity<PerformanceItem>(entity =>
  67. {
  68. entity.ToTable("PerformanceItem");
  69. entity.Property(e => e.ApplicationName).HasMaxLength(200);
  70. entity.Property(e => e.ApplicationType).HasMaxLength(50);
  71. entity.Property(e => e.BasePoint).HasColumnType("numeric(18, 2)");
  72. entity.Property(e => e.BusinessType).HasMaxLength(50);
  73. entity.Property(e => e.CaseCoefficient).HasMaxLength(10);
  74. entity.Property(e => e.CaseName).HasMaxLength(500);
  75. entity.Property(e => e.CaseNo).HasMaxLength(50);
  76. entity.Property(e => e.CaseStage).HasMaxLength(50);
  77. entity.Property(e => e.CaseState).HasMaxLength(50);
  78. entity.Property(e => e.CaseType).HasMaxLength(50);
  79. entity.Property(e => e.EntrustingDate).HasColumnType("date");
  80. entity.Property(e => e.CustomerLimitDate).HasColumnType("date");
  81. entity.Property(e => e.DoItem).HasMaxLength(50);
  82. entity.Property(e => e.DoItemCoefficient).HasMaxLength(50);
  83. entity.Property(e => e.DoItemMemo).HasMaxLength(500);
  84. entity.Property(e => e.DoItemState).HasMaxLength(50);
  85. entity.Property(e => e.FinalizationDate).HasColumnType("date");
  86. entity.Property(e => e.FinishedDate).HasColumnType("date");
  87. entity.Property(e => e.FirstDraftDate).HasColumnType("date");
  88. entity.Property(e => e.InternalDate).HasColumnType("date");
  89. entity.Property(e => e.OverDueMemo).HasMaxLength(100);
  90. entity.Property(e => e.PreOastaffId).HasColumnName("PreOAStaffId");
  91. entity.Property(e => e.ReturnDate).HasColumnType("date");
  92. entity.Property(e => e.Status).HasColumnName("status");
  93. entity.HasOne(d => d.Customer)
  94. .WithMany(p => p.PerformanceItems)
  95. .HasForeignKey(d => d.CustomerId)
  96. .HasConstraintName("FK_PerformanceItem_Customer");
  97. entity.HasOne(d => d.PreOastaff)
  98. .WithMany()
  99. .HasForeignKey(d => d.PreOastaffId)
  100. .HasConstraintName("FK_PerformanceItem_Staff");
  101. entity.HasOne(d => d.Reviewer)
  102. .WithMany(p => p.ReviewerItems)
  103. .HasForeignKey(d => d.ReviewerId)
  104. .HasConstraintName("FK_PerformanceItem_Reviewer");
  105. });
  106. modelBuilder.Entity<StaffGrade>(entity =>
  107. {
  108. entity.ToTable("StaffGrade");
  109. entity.Property(e => e.Coefficient);//.HasColumnType("numeric(18, 2)");
  110. entity.Property(e => e.Grade)
  111. .IsRequired()
  112. .HasMaxLength(5)
  113. .IsFixedLength(true);
  114. });
  115. modelBuilder.Entity<VerifyCoefficient>(entity =>
  116. {
  117. entity.HasKey(e => new { e.CheckerId, e.DoPersonId });
  118. entity.ToTable("VerifyCoefficient");
  119. entity.Property(e => e.Coefficient);//.HasColumnType("numeric(18, 2)");
  120. entity.HasOne(d => d.Checker)
  121. .WithMany(p => p.VerifyCoefficientCheckers)
  122. .HasForeignKey(d => d.CheckerId)
  123. .OnDelete(DeleteBehavior.ClientSetNull)
  124. .HasConstraintName("FK_VerifyCoefficient_StaffGrade");
  125. entity.HasOne(d => d.DoPerson)
  126. .WithMany(p => p.VerifyCoefficientDoPeople)
  127. .HasForeignKey(d => d.DoPersonId)
  128. .OnDelete(DeleteBehavior.ClientSetNull)
  129. .HasConstraintName("FK_VerifyCoefficient_StaffGrade1");
  130. });
  131. modelBuilder.Entity<Staff>(entity =>
  132. {
  133. entity.ToTable("Staff");
  134. //entity.Property(e => e.Id).ValueGeneratedNever();
  135. entity.Property(e => e.Account)
  136. .IsRequired()
  137. .HasMaxLength(50);
  138. entity.Property(e => e.Department).HasMaxLength(50);
  139. entity.Property(e => e.EntyDate).HasColumnType("date");
  140. entity.Property(e => e.IsCalPerformsnce).HasColumnName("isCalPerformsnce");
  141. entity.Property(e => e.Name)
  142. .IsRequired()
  143. .HasMaxLength(50);
  144. entity.Property(e => e.Password).IsRequired();
  145. entity.Property(e => e.Status)
  146. .IsRequired()
  147. .HasMaxLength(25);
  148. entity.Property(e => e.WorkPlace).HasMaxLength(50);
  149. entity.HasOne(d => d.StaffGrade)
  150. .WithMany(p => p.Staff)
  151. .HasForeignKey(d => d.StaffGradeId)
  152. .OnDelete(DeleteBehavior.ClientSetNull)
  153. .HasConstraintName("FK_Staff_StaffGrade");
  154. });
  155. modelBuilder.Entity<Message>(entity =>
  156. {
  157. //entity.HasKey(e => e.Id);
  158. entity.ToTable("Message");
  159. entity.Property(e => e.Type);
  160. entity.Property(e => e.MessageInfo).HasMaxLength(500);
  161. entity.HasOne(d => d.From)
  162. .WithMany()
  163. .HasForeignKey(d => d.FromId)
  164. .OnDelete(DeleteBehavior.ClientSetNull)
  165. .HasConstraintName("FK_From_Staff");
  166. });
  167. modelBuilder.Entity<MessageReadRecord>(entity =>
  168. {
  169. entity.HasKey(e => new { e.MessageId,e.StaffId});
  170. entity.ToTable("MessageReadRecord");
  171. entity.Property(e => e.isReaded);
  172. entity.HasOne(d => d.Staff)
  173. .WithMany()
  174. .HasForeignKey(d => d.StaffId)
  175. .OnDelete(DeleteBehavior.ClientSetNull)
  176. .HasConstraintName("FK_MessageReadRecord_Staff");
  177. entity.HasOne(d => d.Message)
  178. .WithMany()
  179. .HasForeignKey(d => d.MessageId)
  180. .OnDelete(DeleteBehavior.ClientSetNull)
  181. .HasConstraintName("FK_MessageReadRecord_Message");
  182. });
  183. modelBuilder.Entity<MessagePerformanceItem>( entity =>
  184. {
  185. entity.HasKey(e=> new { e.ItemId,e.MessageId});
  186. entity.HasOne(d => d.Message)
  187. .WithMany(m => m.RelatedItem)
  188. .HasForeignKey(d => d.MessageId)
  189. .HasConstraintName("FK_MessagePerformanceItem_Message");
  190. entity.HasOne(d => d.Item )
  191. .WithMany()
  192. .HasForeignKey(d => d.ItemId)
  193. .HasConstraintName("FK_MessagePerformanceItem_Item");
  194. });
  195. modelBuilder.Entity<AttachFile>(entity =>
  196. {
  197. entity.ToTable("AttachFile");
  198. entity.Property(e=>e.Name).HasMaxLength(200);
  199. entity.Property(e => e.SavePath).HasMaxLength(200);
  200. entity.HasOne(d => d.UploadUser)
  201. .WithMany()
  202. .HasForeignKey(d => d.UploadUserId)
  203. .HasConstraintName("FK_AttachFile_UpdateUser");
  204. });
  205. modelBuilder.Entity<StaffGrade>().HasData(
  206. new StaffGrade[]
  207. {
  208. new StaffGrade() {Id=1, Grade = "S级", Coefficient = 1.2},
  209. new StaffGrade() {Id=2, Grade = "A3级", Coefficient = 1.1},
  210. new StaffGrade() {Id =3, Grade = "A2级", Coefficient = 1.1},
  211. new StaffGrade() {Id=4, Grade = "A1级", Coefficient = 1.1},
  212. new StaffGrade() {Id=5, Grade = "B3级", Coefficient = 1.0},
  213. new StaffGrade() {Id=6, Grade = "B2级", Coefficient = 1.0},
  214. new StaffGrade() {Id=7, Grade = "B1级", Coefficient = 0.9},
  215. new StaffGrade() {Id=8, Grade = "C3级", Coefficient = 0.9},
  216. new StaffGrade() {Id=9, Grade = "C2级", Coefficient = 0.7},
  217. new StaffGrade() {Id= 10, Grade = "C1级", Coefficient = 0.7},
  218. new StaffGrade() {Id=11, Grade = "D3级", Coefficient = 0.6},
  219. new StaffGrade() {Id=12, Grade = "D2级", Coefficient = 0.6},
  220. new StaffGrade() {Id=13, Grade = "D1级", Coefficient = 0.5}
  221. });
  222. modelBuilder.Entity<VerifyCoefficient>().HasData(
  223. new VerifyCoefficient[]
  224. {
  225. new VerifyCoefficient() { CheckerId = 2, DoPersonId =5, Coefficient = 0.2},
  226. new VerifyCoefficient() { CheckerId = 2, DoPersonId =6, Coefficient = 0.2},
  227. new VerifyCoefficient() { CheckerId = 2, DoPersonId =7, Coefficient = 0.2},
  228. new VerifyCoefficient() { CheckerId = 2, DoPersonId =8, Coefficient = 0.2},
  229. new VerifyCoefficient() { CheckerId = 2, DoPersonId =9, Coefficient = 0.3},
  230. new VerifyCoefficient() { CheckerId = 2, DoPersonId =10, Coefficient = 0.3},
  231. new VerifyCoefficient() { CheckerId = 2, DoPersonId =11, Coefficient = 0.4},
  232. new VerifyCoefficient() { CheckerId = 2, DoPersonId =12, Coefficient = 0.4},
  233. new VerifyCoefficient() { CheckerId = 2, DoPersonId =13, Coefficient = 0.5},
  234. new VerifyCoefficient() { CheckerId = 3, DoPersonId =5, Coefficient = 0.2},
  235. new VerifyCoefficient() { CheckerId = 3, DoPersonId =6, Coefficient = 0.2},
  236. new VerifyCoefficient() { CheckerId = 3, DoPersonId =7, Coefficient = 0.2},
  237. new VerifyCoefficient() { CheckerId = 3, DoPersonId =8, Coefficient = 0.2},
  238. new VerifyCoefficient() { CheckerId = 3, DoPersonId =9, Coefficient = 0.3},
  239. new VerifyCoefficient() { CheckerId = 3, DoPersonId =10, Coefficient = 0.3},
  240. new VerifyCoefficient() { CheckerId = 3, DoPersonId =11, Coefficient = 0.4},
  241. new VerifyCoefficient() { CheckerId = 3, DoPersonId =12, Coefficient = 0.4},
  242. new VerifyCoefficient() { CheckerId = 3, DoPersonId =13, Coefficient = 0.5},
  243. new VerifyCoefficient() { CheckerId = 4, DoPersonId =5, Coefficient = 0.2},
  244. new VerifyCoefficient() { CheckerId = 4, DoPersonId =6, Coefficient = 0.2},
  245. new VerifyCoefficient() { CheckerId = 4, DoPersonId =7, Coefficient = 0.2},
  246. new VerifyCoefficient() { CheckerId = 4, DoPersonId =8, Coefficient = 0.2},
  247. new VerifyCoefficient() { CheckerId = 4, DoPersonId =9, Coefficient = 0.3},
  248. new VerifyCoefficient() { CheckerId = 4, DoPersonId =10, Coefficient = 0.3},
  249. new VerifyCoefficient() { CheckerId = 4, DoPersonId =11, Coefficient = 0.4},
  250. new VerifyCoefficient() { CheckerId = 4, DoPersonId =12, Coefficient = 0.4},
  251. new VerifyCoefficient() { CheckerId = 4, DoPersonId =13, Coefficient = 0.5},
  252. }
  253. );
  254. OnModelCreatingPartial(modelBuilder);
  255. }
  256. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  257. }
  258. }