/// <summary>检查数据表架构,不受反向工程启用开关限制</summary> public void CheckTables() { WriteLog("开始检查连接[{0}/{1}]的数据库架构……", ConnName, DbType); var sw = new Stopwatch(); sw.Start(); try { var list = EntityFactory.GetTables(ConnName); if (list != null && list.Count > 0) { // 全都标为已初始化的 foreach (var item in list) { if (!HasCheckTables.Contains(item.Name)) { HasCheckTables.Add(item.Name); } } // 过滤掉被排除的表名 if (NegativeExclude.Count > 0) { for (int i = list.Count - 1; i >= 0; i--) { if (NegativeExclude.Contains(list[i].Name)) { list.RemoveAt(i); } } } // 过滤掉视图 list.RemoveAll(dt => dt.IsView); if (list != null && list.Count > 0) { WriteLog(ConnName + "待检查表架构的实体个数:" + list.Count); SetTables(list.ToArray()); } } } finally { sw.Stop(); WriteLog("检查连接[{0}/{1}]的数据库架构耗时{2}", ConnName, DbType, sw.Elapsed); } }
/// <summary>反向工程。检查所有采用当前连接的实体类的数据表架构</summary> private void SetTables() { if (!Setting.Current.Negative.Enable || NegativeExclude.Contains(ConnName)) { return; } // NegativeCheckOnly设置为true时,使用异步方式检查,因为上级的意思是不大关心数据库架构 if (!Setting.Current.Negative.CheckOnly) { CheckTables(); } else { Task.Factory.StartNew(CheckTables); } }
/// <summary>反向工程。检查所有采用当前连接的实体类的数据表架构</summary> private void SetTables() { if (!NegativeEnable || NegativeExclude.Contains(ConnName)) { return; } // NegativeCheckOnly设置为true时,使用异步方式检查,因为上级的意思是不大关心数据库架构 if (!NegativeCheckOnly) { CheckTables(); } else { ThreadPoolX.QueueUserWorkItem(CheckTables); } }
/// <summary>检查数据表架构,不受反向工程启用开关限制,仅检查未经过常规检查的表</summary> public void CheckTables() { WriteLog("开始检查连接[{0}/{1}]的数据库架构……", ConnName, DbType); var sw = new Stopwatch(); sw.Start(); try { var list = EntityFactory.GetTables(ConnName); if (list != null && list.Count > 0) { // 移除所有已初始化的 list.RemoveAll(dt => CheckAndAdd(dt.TableName)); // 过滤掉被排除的表名 list.RemoveAll(dt => NegativeExclude.Contains(dt.TableName)); // 过滤掉视图 list.RemoveAll(dt => dt.IsView); if (list != null && list.Count > 0) { WriteLog(ConnName + "待检查表架构的实体个数:" + list.Count); SetTables(null, list.ToArray()); } } } finally { sw.Stop(); WriteLog("检查连接[{0}/{1}]的数据库架构耗时{2:n0}ms", ConnName, DbType, sw.Elapsed.TotalMilliseconds); } }