WCSDB.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using DBHelper;
  2. using Microsoft.EntityFrameworkCore;
  3. using Microsoft.Extensions.Configuration;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel.DataAnnotations;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using WCS.Entity;
  12. using WCS.Entity.Protocol;
  13. namespace WCS.Service
  14. {
  15. public class WCSDB : DbContext
  16. {
  17. private IConfiguration configuration;
  18. public WCSDB()
  19. {
  20. configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
  21. }
  22. protected override void OnModelCreating(ModelBuilder modelBuilder)
  23. {
  24. base.OnModelCreating(modelBuilder);
  25. }
  26. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  27. {
  28. optionsBuilder.UseSqlServer(configuration.GetConnectionString("db"));
  29. }
  30. public override int SaveChanges()
  31. {
  32. var entities = from e in ChangeTracker.Entries()
  33. where e.State == EntityState.Added
  34. || e.State == EntityState.Modified
  35. select e.Entity;
  36. List<ValidationResult> list = new List<ValidationResult>();
  37. foreach (var entity in entities)
  38. {
  39. var validationContext = new ValidationContext(entity);
  40. try
  41. {
  42. Validator.ValidateObject(entity, validationContext);
  43. }
  44. catch (ValidationException ex)
  45. {
  46. list.Add(ex.ValidationResult);
  47. }
  48. }
  49. if (list.Count > 0)
  50. throw new EntityValidationException { EntityValidationErrors = list };
  51. return base.SaveChanges();
  52. }
  53. public DbSet<WCS_PLC> WCS_PLC { get; set; }
  54. public DbSet<WCS_DATABLOCK> WCS_DATABLOCK { get; set; }
  55. public DbSet<WCS_DEVICE> WCS_DEVICE { get; set; }
  56. public DbSet<WCS_DEVICEPROTOCOL> WCS_DEVICEITEM { get; set; }
  57. public DbSet<WCS_EXCEPTION> WCS_EXCEPTION { get; set; }
  58. public DbSet<WCS_STATIONDATA> WCS_STATIONDATA { get; set; }
  59. public DbSet<WCS_STATIONSTATUSDATA> WCS_STATIONSTATUSDATA { get; set; }
  60. public DbSet<WCS_BCRDATA> WCS_BCRDATA { get; set; }
  61. public DbSet<WCS_CMD> WCS_CMD { get; set; }
  62. }
  63. }