阅读现有代码要点梳理已有架构:BaseTableManagerTItem抽象基类,单例模式,内部自带缓存字典,原生SQLiteConnection/SQLiteCommand/DataReader,不使用Dapper,支持读写保存。已实现:CodeTableItem / CodeTable、LayerTableItem / LayerTable。缺失:FieldTable(属性字段表)Item + Manager实现。现有模式特点:每个表独立单例,各自Load,内部有自己独立_cache字典;调用流程:SetEnvironment(连接串,表名)→Load()加载全表到内存缓存;可增改保存;注意:FieldTable主键不是单字段主键,主键组合:属性表 + 字段名,这点要重点处理。业务痛点:现在三张表是互相隔离的独立缓存,上层业务每次拿一个Code,需要多次调用各个单例的GetItem去做关联;按照之前方案:第一步补齐FieldTableItem + FieldTable,完全遵从现有BaseTableManager编码风格;第二步实现聚合容器PipeStandardStore:消费三个Manager的缓存数据,做一次内存Join组装成业务模型,提供按Code直接获取完整要素定义;聚合容器不碰数据库,完全基于已经加载完成的三个表内存数据;切换标准/重载时:三张表依次Load,然后调用聚合容器的Rebuild方法重建业务模型;原有单例Manager保留不动,保留原有编辑保存能力(你的模板配置编辑功能还需要这层)。重要:FieldTable没有单一主键,GetPrimaryKey使用组合key:$"{属性表}||{字段名}",保证字典缓存key唯一。下面完整代码,命名空间沿用CommBaseDB.TemplateConfig,可直接编译。using System; using System.Collections.Generic; using System.Linq; using System.Data.SQLite; namespace CommBaseDB.TemplateConfig { #region 1、FieldTable 补齐(遵从现有BaseTableManager架构) public class FieldTableItem { public string 属性表 { get; set; } public string 字段名 { get; set; } public string 字段类型 { get; set; } public int 是否必填 { get; set; } public int 字段长度 { get; set; } public int? 小数位数 { get; set; } public string 枚举值 { get; set; } public string 默认值 { get; set; } public string 外来字段 { get; set; } } public class FieldTable : BaseTableManagerFieldTableItem { #region 单例 private static readonly LazyFieldTable _instance = new LazyFieldTable(() = new FieldTable()); public static FieldTable Instance = _instance.Value; private FieldTable() { } #endregion /// summary组合主键:属性表||字段名/summary protected override string GetPrimaryKey(FieldTableItem item) { return $"{item.属性表}||{item.字段名}"; } protected override ListFieldTableIt