Files
RBMESAPICore/Context/RBContext.cs
yuyubohh e8494ba988 qqq
2025-09-09 22:41:29 +08:00

159 lines
7.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Kingdee.CDP.WebApi.SDK;
using Microsoft.EntityFrameworkCore;
using Oracle.ManagedDataAccess.Client;
using RB_MES_API.Models;
using RB_MES_API.Models.Cloud;
using RB_MES_API.Models.Pangu;
using RB_MES_APICore.Models;
using RB_MES_APICore.Models.Cloud;
namespace RB_MES_API.Context
{
/// <summary>
/// 沃比数据库实体
/// </summary>
public class RBContext : DbContext
{
public void ConfigureServices(IServiceCollection services)
{
//var connectionString = ConnectionString.GetConfig("ConnectionStrings", "RBConn");
var connectionString = ApiSettingsHelper.GetConfig("RBConn");
services.AddDbContextPool<RBContext>(options =>
{
options.UseSqlServer(connectionString, sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.CommandTimeout(600);
sqlOptions.MaxBatchSize(32767);
});
});
}
/// <summary>
/// 构造RBContext
/// </summary>
/// <param name="options"></param>
public RBContext(DbContextOptions<RBContext> options) : base(options)
{
}
//在Startup中使用AddDbContext注册数据库连接时使用
//protected override void OnConfiguring(DbContextOptionsBuilder contextOptionsBuilder)
//{
// string connnstr = ConnectionString.GetConfig("ConnectionStrings", "RBConn");
// contextOptionsBuilder.UseSqlServer(connnstr);
//}
/// <summary>
/// Model
/// </summary>
/// <param name="modelBuilder"></param>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<ERPPutOperationAnchor>().ToTable("r_ERPPutOperationAnchor");
modelBuilder.Entity<FormIDType>().ToTable("r_FormIDType");
modelBuilder.Entity<FunctionList>().ToTable("r_FunctionList");
modelBuilder.Entity<SelectJoinID>().ToTable("r_SelectJoinID");
//modelBuilder.Entity<MesRequestStatu>().ToTable("r_MesRequestJson");
modelBuilder.Entity<RBLog>().ToTable("RBLog");
modelBuilder.Entity<BillConvert>().ToTable("r_BillConvertes");
modelBuilder.Entity<ReceiveStockBillType>().ToTable("r_ReceiveStockBillTypes");
modelBuilder.Entity<SystemProfile>().ToTable("r_SystemProfiles");
modelBuilder.Entity<CloudBillQuery>().ToTable("r_CloudBillQuery");
modelBuilder.Entity<SelectClumnConvert>().ToTable("r_ClumnConvert");
modelBuilder.Entity<DataSaveBatch>().ToTable("r_DataSaveBatch");
modelBuilder.Entity<ReciveDataBack>().ToTable("r_ReciveDataBack");
modelBuilder.Entity<LockPRD_MO>().ToTable("r_LockPRD_MO"); //英搏尔项目特有的
modelBuilder.Entity<CustomService>().ToTable("r_CustomServices");
modelBuilder.Entity<BillTypeRules>().ToTable("r_BillTypeRules");
modelBuilder.Entity<AuthorizationInfo>().ToTable("t_AuthorizationInfo");
modelBuilder.Entity<ApiHostService>().ToTable("r_ApiHostServices");
modelBuilder.Entity<SystemProfile>().HasKey(c => new { c.FCategoryID, c.FKey });
modelBuilder.Entity<FormIDType>().HasIndex(c => new { c.FFunctionID, c.FDocType });
modelBuilder.Entity<SelectJoinID>().HasIndex(c => c.FDocType);
modelBuilder.Entity<RBLog>().HasIndex(c => new { c.FDateTime, c.FDocType });
modelBuilder.Entity<BillConvert>().HasIndex(c => new { c.FReceiveID, c.FPageID, c.FK3FiledName }).IsUnique();
modelBuilder.Entity<ReceiveStockBillType>().HasIndex(c => new { c.FFunctionID, c.ErpBillTypeID }).IsUnique();
modelBuilder.Entity<CloudBillQuery>().HasIndex(c => c.FFormIDTypeID).IsUnique();
modelBuilder.Entity<SelectClumnConvert>().HasIndex(c => c.FFunctionID);
modelBuilder.Entity<ReciveDataBack>().HasIndex(c => new { c.FDocType, c.FErpID, c.FSeq }).IsUnique();
modelBuilder.Entity<LockPRD_MO>().HasIndex(c => new { c.ERP_MO, c.MO_SEQ });
modelBuilder.Entity<BillTypeRules>().HasIndex(c => new { c.FPostTypeID, c.FSBillTypeNumber });
//相关表名称的和类的对应
base.OnModelCreating(modelBuilder);
}
/// <summary>
/// 用于检测单据是否已经进行过推送
/// </summary>
public DbSet<ERPPutOperationAnchor> r_ERPPutOperationAnchor { get; set; }
/// <summary>
/// 查询接口字段转换,可用于各种接口的字段转换
/// </summary>
public DbSet<FormIDType> r_FormIDType { get; set; }
/// <summary>
/// 接口类型定义表
/// </summary>
public DbSet<FunctionList> r_FunctionList { get; set; }
/// <summary>
/// 查询类接口定义
/// </summary>
public DbSet<SelectJoinID> r_SelectJoinID { get; set; }
/// <summary>
/// 沃比系统接收接口日志,防止重复传单
/// </summary>
//public DbSet<MesRequestStatu> r_MesRequestJson { get; set; }
/// <summary>
/// 沃比系统错误日志,包含程序错误
/// </summary>
public DbSet<RBLog> RBLog { get; set; }
/// <summary>
/// 接收单据类型接口传参定义
/// </summary>
public DbSet<BillConvert> r_BillConvertes { get; set; }
/// <summary>
/// 接收单据类型定义
/// </summary>
public DbSet<ReceiveStockBillType> r_ReceiveStockBillTypes { get; set; }
/// <summary>
/// 系统文件,包含各种参数定义
/// </summary>
public DbSet<SystemProfile> r_SystemProfiles { get; set; }
/// <summary>
/// ExecuteBillQuery接口JSON格式数据字段
/// </summary>
public DbSet<CloudBillQuery> r_CloudBillQuery { get; set; }
/// <summary>
/// 查询接口字段转换,可用于各种接口的字段转换
/// </summary>
public DbSet<SelectClumnConvert> r_ClumnConvert { get; set; }
/// <summary>
/// 批量推送单据到CLOUD配置
/// </summary>
public DbSet<DataSaveBatch> r_DataSaveBatch { get; set; }
/// <summary>
/// 向ERP推单备份
/// </summary>
public DbSet<ReciveDataBack> r_ReciveDataBack { get; set; }
/// <summary>
/// 向ERP推单备份
/// </summary>
public DbSet<LockPRD_MO> r_LockPRD_MO { get; set; }
/// <summary>
/// Cloud自定义接口配置
/// </summary>
public DbSet<CustomService> r_CustomServices { get; set; }
/// <summary>
/// 接收单据类型定义
/// </summary>
public DbSet<BillTypeRules> r_BillTypeRules { get; set; }
/// <summary>
/// 调用外部接口鉴权相关信息
/// </summary>
public DbSet<AuthorizationInfo> t_AuthorizationInfo { get; set; }
/// <summary>
/// 使用定时任务的列表
/// </summary>
public DbSet<ApiHostService> r_ApiHostServices { get; set; }
}
}