using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.SYS; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.WebApi.Models.BAS; namespace AMESCoreStudio.WebApi { /// <summary> /// /// </summary> public class AMESContext : DbContext { /// <summary> /// /// </summary> /// <param name="options"></param> public AMESContext(DbContextOptions<AMESContext> options) : base(options) { //Configuration.ProxyCreationEnabled = false; } /// <summary> /// /// </summary> public DbSet<IDKey> IDKeys { get; set; } /// <summary> /// /// </summary> public DbSet<AuthInfo> AuthInfo { get; set; } /// <summary> /// /// </summary> public DbSet<SystemInfo> SystemInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<ModuleInfo> ModuleInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<ProgramInfo> ProgramInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<RoleInfo> RoleInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<UserInfo> UserInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<DeptInfo> DeptInfoes { get; set; } /// <summary> /// /// </summary> public DbSet<RoleModule> RoleModules { get; set; } /// <summary> /// /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(ModelBuilder modelBuilder) { /* modelBuilder.Entity<RoleModule>() .HasOne(m => m.Module); */ modelBuilder.Entity<Rules>().HasKey(c => new { c.RuleStationID, c.RuleStatus }); modelBuilder.Entity<WipBarcode>().HasKey(c => new { c.WipNO, c.StartNO, c.EndNO }); modelBuilder.Entity<WipLog>().HasKey(c => new { c.WipID, c.CreateDate}); modelBuilder.Entity<PartMap>().HasKey(c => new { c.CorpSN }); modelBuilder.Entity<CycleTime>().HasKey(c => new { c.ItemNo, c.LineID }); modelBuilder.Entity<CycleTime>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.SectionNo).IsRequired(); modelBuilder.Entity<CycleTime>().HasOne(r => r.Line).WithMany().HasForeignKey(r => r.LineID).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.ClassInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.LineInfo>().HasOne(r => r.Dept).WithMany().HasForeignKey(r => r.DeptID).IsRequired(); modelBuilder.Entity<AMESCoreStudio.WebApi.Models.BAS.Stations>().HasOne(r => r.Unit).WithMany().HasForeignKey(r => r.UnitNo).IsRequired(); } /// <summary> /// /// </summary> public DbSet<RoleProgram> RolePrograms { get; set; } /// <summary> /// /// </summary> public DbSet<UserRole> UserRoles { get; set; } //#region AMES Table BAS /// <summary> /// 工廠 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.FactoryInfo> FactoryInfos { get; set; } /// <summary> /// 單位 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.FactoryUnit> FactoryUnits { get; set; } /// <summary>ClassInfo /// 線別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.LineInfo> LineInfoes { get; set; } /// <summary> /// 班别資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.ClassInfo> ClassInfoes { get; set; } /// <summary>TIME_SEGMENT /// 生產時段 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.TimeSegment> TimeSegments { get; set; } /// <summary> /// 工作臺類別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.StationType> StationTypes { get; set; } /// <summary> /// 工作臺 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.Stations> Stationses { get; set; } /// <summary> /// 責任單位資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.RepairResponsibleUnits> RepairResponsibleUnitses { get; set; } /// <summary> /// 郵件群组類别 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.MailGroup> MailGroups { get; set; } /// <summary> /// 郵件群组資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.MailGroupDetail> MailGroupDetails { get; set; } /// <summary> /// 測試代號 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.BAS.TestType> TestTypes { get; set; } /////////////////////////*****///////////////////////////////////////////////////////// /// <summary> /// 正背面 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.MFGType> MFGTypes { get; set; } /// <summary> /// 工單性質 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.ProcessType> ProcessTypes { get; set; } /// <summary> /// 產品別 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.ProductType> ProductTypes { get; set; } /// <summary> /// 工單機種資料 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.WipAtt> WipAtts { get; set; } /// <summary> /// 工單基本資料文件 /// </summary> public DbSet<AMESCoreStudio.WebApi.Models.AMES.WipInfo> WipInfos { get; set; } /// <summary> /// 流程資料 /// </summary> public DbSet<FlowRule> FlowRules { get; set; } /// <summary> /// 流程站別資料 /// </summary> public DbSet<RuleStation> RuleStations { get; set; } /// <summary> /// 流程規則資料 /// </summary> public DbSet<Rules> Ruleses { get; set; } /// <summary> /// 條碼狀態資料 /// </summary> public DbSet<BarcodeStatus> BarcodeStatus { get; set; } /// <summary> /// 異常群組資料 /// </summary> public DbSet<ErrorGroup> ErrorGroups { get; set; } /// <summary> /// 異常類別資料 /// </summary> public DbSet<ErrorClass> ErrorClasses { get; set; } /// <summary> /// 工單狀態資料 /// </summary> public DbSet<WipStatus> WipStatus { get; set; } /// <summary> /// 工單鎖定資料檔 /// </summary> public DbSet<WipLock> WipLocks { get; set; } /// <summary> /// 工單條碼起迄資料檔 /// </summary> public DbSet<WipBarcode> WipBarcodes { get; set; } /// <summary> /// 異常原因資料 /// </summary> public DbSet<ErrorReason> ErrorReasons { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<WipLog> WipLogs { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<NGGroup> NGGroups { get; set; } /// <summary> /// 工單投產纪錄資料文件 /// </summary> public DbSet<NGClass> NGClasses { get; set; } /// <summary> /// 維修群組資料 /// </summary> public DbSet<RMAGroup> RMAGroups { get; set; } /// <summary> /// 維修類別資料 /// </summary> public DbSet<RMAClass> RMAClasses { get; set; } /// <summary> /// 維修原因資料 /// </summary> public DbSet<RMAReason> RMAReasons { get; set; } /// <summary> /// 機種C/T資料 /// </summary> public DbSet<CycleTime> CycleTimes { get; set; } /// <summary> /// 不良現象原因代碼資料 /// </summary> public DbSet<NGReason> NGReasons { get; set; } /// <summary> /// 問題類別資料 /// </summary> public DbSet<QAType> QATypes { get; set; } /// <summary> /// 維修方式資料 /// </summary> public DbSet<RepairType> RepairTypes { get; set; } /// <summary> /// 組件類別資料 /// </summary> public DbSet<RepairItem> RepairItems { get; set; } /// <summary> /// 序號料號資料 /// </summary> public DbSet<PartMap> PartMaps { get; set; } /// <summary> /// 組件料號序號資料 /// </summary> public DbSet<KPLink> KPLinks { get; set; } } }