2024-10-13 17:04:47 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using LMS.Repository.DB;
|
|
|
|
|
|
using LMS.Repository.Models.DB;
|
|
|
|
|
|
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
|
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
|
|
|
|
|
|
|
namespace LMS.DAO
|
|
|
|
|
|
{
|
|
|
|
|
|
public class ApplicationDbContext : IdentityDbContext<User, Role, long>
|
|
|
|
|
|
{
|
|
|
|
|
|
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { }
|
|
|
|
|
|
|
|
|
|
|
|
//public DbSet<Prompt> Prompt { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
//public DbSet<PromptType> PromptType { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<Permission> Permission { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<PermissionType> PermissionType { get; set; }
|
|
|
|
|
|
|
2024-11-13 14:00:39 +08:00
|
|
|
|
public DbSet<PromptType> PromptType { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<Prompt> Prompt { get; set; }
|
|
|
|
|
|
|
2024-10-13 17:04:47 +08:00
|
|
|
|
public DbSet<Machine> Machine { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<RefreshTokens> RefreshTokens { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<ApiEndpoints> ApiEndpoints { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<RsaKeys> RsaKeys { get; set; }
|
|
|
|
|
|
|
2024-10-18 12:44:12 +08:00
|
|
|
|
public DbSet<Options> Options { get; set; }
|
|
|
|
|
|
|
2024-12-27 21:50:13 +08:00
|
|
|
|
public DbSet<Software> Software { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<UserSoftware> UserSoftware { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public DbSet<SoftwareControl> SoftwareControl { get; set; }
|
|
|
|
|
|
|
2024-10-13 17:04:47 +08:00
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
|
|
|
|
{
|
|
|
|
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
|
|
modelBuilder.Entity<ApiEndpoints>()
|
|
|
|
|
|
.Property(a => a.RequiredPermissionIds)
|
|
|
|
|
|
.HasConversion(
|
|
|
|
|
|
v => string.IsNullOrEmpty(JsonSerializer.Serialize(v, (JsonSerializerOptions?)null))
|
|
|
|
|
|
? "[]" // 如果序列化结果为空,则存储空数组
|
|
|
|
|
|
: JsonSerializer.Serialize(v, (JsonSerializerOptions?)null),
|
|
|
|
|
|
v => string.IsNullOrEmpty(v) || v == "[]"
|
|
|
|
|
|
? new List<string>() // 如果存储的是空字符串或空数组,则返回空列表
|
|
|
|
|
|
: JsonSerializer.Deserialize<List<string>>(v, (JsonSerializerOptions?)null) ?? new List<string>()
|
|
|
|
|
|
);
|
2024-12-27 21:50:13 +08:00
|
|
|
|
modelBuilder.Entity<UserSoftware>()
|
|
|
|
|
|
.HasKey(us => new { us.UserId, us.SoftwareId });
|
2024-10-13 17:04:47 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|