83 lines
3.7 KiB
C#
83 lines
3.7 KiB
C#
|
|
using InSituLaboratory.Entities;
|
|
using InSituLaboratory.Entities.ExperimentalStationEntities;
|
|
using InSituLaboratory.Entities.Sensor;
|
|
using InSituLaboratory.Entities.SysData;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
|
using System.Globalization;
|
|
|
|
namespace InSituLaboratory.ORM
|
|
{
|
|
public class NoimptyDbContext : DbContext
|
|
{
|
|
public NoimptyDbContext(DbContextOptions<NoimptyDbContext> options) : base(options)
|
|
{ }
|
|
|
|
|
|
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
|
{
|
|
if (!optionsBuilder.IsConfigured)
|
|
optionsBuilder.UseSqlite("Data Source=data.db ");
|
|
}
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
// 联合主键
|
|
modelBuilder.Entity<RoleMenu>()
|
|
.HasKey(pk => new { pk.RoleId, pk.MenuId });
|
|
modelBuilder.Entity<RoleUser>()
|
|
.HasKey(pk => new { pk.RoleId, pk.UserId });
|
|
//角色表的一对多关系 角色对用户
|
|
modelBuilder.Entity<RoleUser>()
|
|
.HasOne(u => u.SysRole)
|
|
.WithMany(r => r.Users)
|
|
.OnDelete(DeleteBehavior.Cascade);
|
|
modelBuilder.Entity<RoleMenu>()
|
|
.HasOne(u => u.SysRole)
|
|
.WithMany(r => r.Menus)
|
|
.OnDelete(DeleteBehavior.Cascade);
|
|
|
|
//用户对角色
|
|
modelBuilder.Entity<RoleUser>()
|
|
.HasOne(u => u.User)
|
|
.WithMany(r => r.Roles);
|
|
|
|
|
|
// 页面-》数据库的转换
|
|
// 数据库-》页面的转换
|
|
ValueConverter iconValueConverter =
|
|
new ValueConverter<string, string>(
|
|
p2d => string.IsNullOrEmpty(p2d) ? null : ((int)p2d.ToArray()[0]).ToString("x"),
|
|
d2p => d2p == null ? "" : ((char)int.Parse(d2p, NumberStyles.HexNumber)).ToString()
|
|
);
|
|
modelBuilder.Entity<SysMenu>()
|
|
.Property(m => m.MenuIcon)
|
|
.HasConversion(iconValueConverter);
|
|
}
|
|
|
|
public virtual DbSet<SysUser> SysUser { get; set; }
|
|
public virtual DbSet<SysMenu> SysMenu { get; set; }
|
|
public virtual DbSet<SysRole> SysRole { get; set; }
|
|
public virtual DbSet<RoleMenu> RoleMenu { get; set; }
|
|
public virtual DbSet<RoleUser> RoleUser { get; set; }
|
|
public virtual DbSet<cavityoperationstatus> cavityoperationstatus { get; set; }
|
|
public virtual DbSet<cavityenvironment> cavityenvironment { get; set; }
|
|
public virtual DbSet<cavityoutputfeedback> cavityoutputfeedback { get; set; }
|
|
public virtual DbSet<cavityoutputstatus> cavityoutputstatus { get; set; }
|
|
public virtual DbSet<cavityoutputcurrent> cavityoutputcurrent { get; set; }
|
|
public virtual DbSet<cavityenergyconversion> cavityenergyconversion { get; set; }
|
|
public virtual DbSet<cavitybatterylevel> cavitybatterylevel { get; set; }
|
|
public virtual DbSet<SysSequential> SysSequential { get; set; }
|
|
public virtual DbSet<SysSequentialDetails> SysSequentialDetails { get; set; }
|
|
public virtual DbSet<SysDevice> SysDevice { get; set; }
|
|
public virtual DbSet<SysSequentialTotal> SysSequentialTotal { get; set; }
|
|
public virtual DbSet<CurrentFaultyEquipment> CurrentFaultyEquipment { get; set; }
|
|
public virtual DbSet<CurrentWorkEquipment> CurrentWorkEquipment { get; set; }
|
|
public virtual DbSet<SysStatus> SysStatus { get; set; }
|
|
public virtual DbSet<MEMSSpModel> MEMSSpModel { get; set; }
|
|
public virtual DbSet<MEMSZpModel> MEMSZpModel { get; set; }
|
|
public virtual DbSet<ColorMSModel> ColorMSModel { get; set; }
|
|
}
|
|
}
|