using DBHelper; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using WCS.Entity; using WCS.Entity.Protocol; using WCS.Entity.Protocol.BCR; using WCS.Entity.Protocol.Station; namespace WCS.Service { public class WCSDB : DbContext { public WCSDB() { } protected override void OnModelCreating(ModelBuilder modelBuilder) { var fks = modelBuilder.Model.GetEntityTypes().SelectMany(v => v.GetForeignKeys()).Where(v => v.DeleteBehavior == DeleteBehavior.Cascade).ToArray(); foreach (var fk in fks) { fk.DeleteBehavior = DeleteBehavior.Restrict; } base.OnModelCreating(modelBuilder); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var loggerFactory = new LoggerFactory(); loggerFactory.AddProvider(new EFLoggerProvider()); optionsBuilder.UseSqlServer(AppSettings.Config.GetConnectionString("WCSDB")).UseLoggerFactory(loggerFactory).EnableSensitiveDataLogging(); //optionsBuilder.UseLoggerFactory(LoggerFactory.Create(builder => //{ // builder.AddFilter((category, level) => category == DbLoggerCategory.Database.Command.Name && level == LogLevel.Information).AddConsole(); //})); } 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_DEVICEPROTOCOL { get; set; } public DbSet WCS_EXCEPTION { get; set; } public DbSet WCS_STATION520 { get; set; } public DbSet WCS_STATION521 { get; set; } public DbSet WCS_STATION523 { get; set; } public DbSet WCS_SystemConfig { get; set; } public DbSet WCS_StatusLog { get; set; } public DbSet WCS_RGV520 { get; set; } public DbSet WCS_RGV521 { get; set; } public DbSet WCS_RGV523 { get; set; } public DbSet WCS_GROUPMEMBER { get; set; } public DbSet WCS_SRM520 { get; set; } public DbSet WCS_SRM521 { get; set; } public DbSet WCS_SRM537 { get; set; } public DbSet WCS_BCR80 { get; set; } public DbSet WCS_CMD { get; set; } public DbSet WCS_TASK { get; set; } public DbSet WCS_ROUTE { get; set; } public DbSet WCS_PATH { get; set; } public DbSet WCS_AGVTask { get; set; } public DbSet WCS_PATHPOINT { get; set; } public DbSet WCS_Users { get; set; } public DbSet WCS_MAPPINGENTRY { get; set; } } }