ql_apimanager_backend/Apimanager_backend/Data/ApiContext.cs

56 lines
2.0 KiB
C#

using Apimanager_backend.Models;
using Microsoft.EntityFrameworkCore;
using System.Reflection;
namespace Apimanager_backend.Data
{
public class ApiContext:DbContext
{
//API表
public DbSet<Api> Apis { get; set; }
//用户表
public DbSet<User> Users { get; set; }
//API调用日志
public DbSet<ApiCallLog> CallLogs { get; set; }
//套餐表
public DbSet<Apipackage> Apipackages { get; set; }
//操作日志表
public DbSet<OperationLog> OperationLogs { get; set; }
//订单表
public DbSet<Order> Orders { get; set; }
//API套餐关联表
public DbSet<ApiPackageItem> apiPackageItems { get; set; }
//用户已订购套餐表
public DbSet<UserPackage> UserPackages { get; set; }
//用户角色表
public DbSet<UserRole> UserRoles { get; set; }
//日志表
public DbSet<Log> Logs { get; set; }
//系统配置表
public DbSet<SystemConfig> SystemConfigs { get; set; }
//支付配置
public DbSet<PaymentConfig> paymentConfigs { get; set; }
public ApiContext(DbContextOptions<ApiContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApiContext).Assembly);
// 配置全局查询筛选器
modelBuilder.Entity<User>().HasQueryFilter(u => !u.IsDelete);
modelBuilder.Entity<UserRole>()
.HasQueryFilter(ur => !ur.User.IsDelete);
modelBuilder.Entity<Api>().HasQueryFilter(a => !a.IsDelete);
modelBuilder.Entity<Apipackage>().HasQueryFilter(x => !x.IsDeleted);
modelBuilder.Entity<Order>().HasQueryFilter(x => !x.IsDeleted);
//配置日志表
modelBuilder.Entity<Log>().HasKey(x => x.Id);
modelBuilder.Entity<Log>()
.Property(x => x.Id)
.ValueGeneratedOnAdd();
}
}
}