using DBHelper; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using WCS.Entity; using WCS.Entity.Protocol; namespace WCS.Service { public class WCSDB : DbContext { private IConfiguration configuration; public WCSDB() { configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build(); } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(configuration.GetConnectionString("db")); } public override int SaveChanges() { var entities = from e in ChangeTracker.Entries() where e.State == EntityState.Added || e.State == EntityState.Modified select e.Entity; List list = new List(); foreach (var entity in entities) { var validationContext = new ValidationContext(entity); try { Validator.ValidateObject(entity, validationContext); } catch (ValidationException ex) { list.Add(ex.ValidationResult); } } if (list.Count > 0) throw new EntityValidationException { EntityValidationErrors = list }; return base.SaveChanges(); } public DbSet WCS_PLC { get; set; } public DbSet WCS_DATABLOCK { get; set; } public DbSet WCS_DEVICE { get; set; } public DbSet WCS_DEVICEITEM { get; set; } public DbSet WCS_EXCEPTION { get; set; } public DbSet WCS_STATIONDATA { get; set; } public DbSet WCS_STATIONSTATUSDATA { get; set; } public DbSet WCS_BCRDATA { get; set; } public DbSet WCS_CMD { get; set; } } }