using Microsoft.EntityFrameworkCore; using detect.gui.Models.Entities; using xwd.utils; namespace detect.gui.Context; public class DetectContext : DbContext { private readonly string _dbPath = AppSettingsManager.Manager().GetString("Database.Path"); public DetectContext() { // 创建数据库 if (base.Database.EnsureCreated()) InitData(); } /// /// 初始化 /// private void InitData() { Set().Add(new AuthorityEntity { Id = 1, Name = "首页", ParentId = 0 }); Set().Add(new AuthorityEntity { Id = 2, Name = "任务管理", ParentId = 0 }); Set().Add(new AuthorityEntity { Id = 3, Name = "设备管理", ParentId = 0 }); Set().Add(new AuthorityEntity { Id = 4, Name = "日志查看", ParentId = 0 }); Set().Add(new AuthorityEntity { Id = 5, Name = "用户管理", ParentId = 0 }); Set().Add(new UserEntity { Id = 1, Username = "admin", Password = "winner!", RealName = "管理员" }); Set().Add(new UserAuthorityEntity { Id = 1, UserId = 1, AuthorityId = 1 }); Set().Add(new UserAuthorityEntity { Id = 2, UserId = 1, AuthorityId = 2 }); Set().Add(new UserAuthorityEntity { Id = 3, UserId = 1, AuthorityId = 3 }); Set().Add(new UserAuthorityEntity { Id = 4, UserId = 1, AuthorityId = 4 }); Set().Add(new DeviceEntity { Id = 1, Name = "设备11", DeviceIp = "192.168.101.253" }); Set().Add(new DeviceEntity { Id = 2, Name = "设备12" }); Set().Add(new DeviceEntity { Id = 3, Name = "设备13" }); SaveChanges(); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlite($"Data Source={_dbPath}detect.db"); base.OnConfiguring(optionsBuilder); } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().ToTable("dat_user"); modelBuilder.Entity().ToTable("dat_authority"); modelBuilder.Entity().ToTable("dat_user_authority"); modelBuilder.Entity().ToTable("dat_detect_task"); modelBuilder.Entity().ToTable("dat_detect_task_log"); modelBuilder.Entity().ToTable("dat_detect_task_progress"); modelBuilder.Entity().ToTable("dat_device"); modelBuilder.Entity().ToTable("dat_log"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.ParentId).HasDefaultValueSql("0"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.UpdateTime).HasDefaultValueSql("datetime('now')"); modelBuilder.Entity().Property(p => p.CreateTime).HasDefaultValueSql("datetime('now')"); base.OnModelCreating(modelBuilder); } }