63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
|
|
|
|||
|
|
using InSituLaboratory.Entities;
|
|||
|
|
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.UseMySql("server=localhost;port=3306;database=20240301_insitulaboratory;user=root;password=zttZTT1234", new MySqlServerVersion(new Version(8, 0, 33)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
modelBuilder.Entity<RoleMenu>()
|
|||
|
|
.HasKey(pk => new { pk.RoleId, pk.MenuId });
|
|||
|
|
modelBuilder.Entity<RoleUser>()
|
|||
|
|
.HasKey(pk => new { pk.RoleId, pk.UserId });
|
|||
|
|
//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>һ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>ϵ <20><>ɫ<EFBFBD><C9AB><EFBFBD>û<EFBFBD>
|
|||
|
|
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);
|
|||
|
|
|
|||
|
|
//<2F>û<EFBFBD><C3BB>Խ<EFBFBD>ɫ
|
|||
|
|
modelBuilder.Entity<RoleUser>()
|
|||
|
|
.HasOne(u => u.User)
|
|||
|
|
.WithMany(r => r.Roles);
|
|||
|
|
|
|||
|
|
|
|||
|
|
// ҳ<><D2B3>-<2D><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
// <20><><EFBFBD>ݿ<EFBFBD>-<2D><>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
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; }
|
|||
|
|
}
|
|||
|
|
}
|