From 1b8effc987e48aeb0861bcca79931b38d52e31b9 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 8 Feb 2018 18:27:14 +0800 Subject: [PATCH] - --- .../Abstract/DbMaintenanceProvider/Methods.cs | 49 ++++++----- .../SqlSugar/Interface/IDbMaintenance.cs | 8 +- .../DbMaintenance/OracleDbMaintenance.cs | 65 ++++++++------- .../DbMaintenance/SqliteDbMaintenance.cs | 76 ++++++++++-------- .../SqliteTest/DataBase/SqlSugar4xTest.sqlite | Bin 475136 -> 475136 bytes 5 files changed, 115 insertions(+), 83 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index deba51989..6a2be323f 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -8,62 +8,75 @@ namespace SqlSugar public abstract partial class DbMaintenanceProvider : IDbMaintenance { #region DML - public virtual List GetViewInfoList() + public virtual List GetViewInfoList(bool isCache = true) { string cacheKey = "DbMaintenanceProvider.GetViewInfoList"; cacheKey = GetCacheKey(cacheKey); - var result = GetListOrCache(cacheKey, this.GetViewInfoListSql); + var result = new List(); + if (isCache) + result = GetListOrCache(cacheKey, this.GetViewInfoListSql); + else + result = this.Context.Ado.SqlQuery(this.GetViewInfoListSql); foreach (var item in result) { item.DbObjectType = DbObjectType.View; } return result; } - public virtual List GetTableInfoList() + public virtual List GetTableInfoList(bool isCache = true) { string cacheKey = "DbMaintenanceProvider.GetTableInfoList"; cacheKey = GetCacheKey(cacheKey); - var result = GetListOrCache(cacheKey, this.GetTableInfoListSql); + var result = new List(); + if (isCache) + result = GetListOrCache(cacheKey, this.GetTableInfoListSql); + else + result = this.Context.Ado.SqlQuery(this.GetTableInfoListSql); foreach (var item in result) { item.DbObjectType = DbObjectType.Table; } return result; } - public virtual List GetColumnInfosByTableName(string tableName) + public virtual List GetColumnInfosByTableName(string tableName, bool isCache = true) { if (string.IsNullOrEmpty(tableName)) return new List(); string cacheKey = "DbMaintenanceProvider.GetColumnInfosByTableName." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); cacheKey = GetCacheKey(cacheKey); - return GetListOrCache(cacheKey, string.Format(this.GetColumnInfosByTableNameSql, tableName)); + var sql = string.Format(this.GetColumnInfosByTableNameSql, tableName); + if (isCache) + return GetListOrCache(cacheKey, sql); + else + return this.Context.Ado.SqlQuery(sql); + } public virtual List GetIsIdentities(string tableName) { string cacheKey = "DbMaintenanceProvider.GetIsIdentities" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); cacheKey = GetCacheKey(cacheKey); - return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey,() => - { - var result = GetColumnInfosByTableName(tableName).Where(it => it.IsIdentity).ToList(); - return result.Select(it => it.DbColumnName).ToList(); - }); + return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () => + { + var result = GetColumnInfosByTableName(tableName).Where(it => it.IsIdentity).ToList(); + return result.Select(it => it.DbColumnName).ToList(); + }); } public virtual List GetPrimaries(string tableName) { string cacheKey = "DbMaintenanceProvider.GetPrimaries" + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); cacheKey = GetCacheKey(cacheKey); - return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey,() => - { - var result = GetColumnInfosByTableName(tableName).Where(it => it.IsPrimarykey).ToList(); - return result.Select(it => it.DbColumnName).ToList(); - }); + return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () => + { + var result = GetColumnInfosByTableName(tableName).Where(it => it.IsPrimarykey).ToList(); + return result.Select(it => it.DbColumnName).ToList(); + }); } #endregion #region Check - public virtual bool IsAnyTable(string tableName) + public virtual bool IsAnyTable(string tableName, bool isCache = true) { tableName = this.SqlBuilder.GetNoTranslationColumnName(tableName); - var tables = GetTableInfoList(); + var tables = GetTableInfoList(isCache); if (tables == null) return false; else return tables.Any(it => it.Name.Equals(tableName, StringComparison.CurrentCultureIgnoreCase)); } diff --git a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs index 8307f952c..cb55982be 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs @@ -9,15 +9,15 @@ namespace SqlSugar SqlSugarClient Context { get; set; } #region DML - List GetViewInfoList(); - List GetTableInfoList(); - List GetColumnInfosByTableName(string tableName); + List GetViewInfoList(bool isCache=true); + List GetTableInfoList(bool isCache=true); + List GetColumnInfosByTableName(string tableName,bool isCache=true); List GetIsIdentities(string tableName); List GetPrimaries(string tableName); #endregion #region Check - bool IsAnyTable(string tableName); + bool IsAnyTable(string tableName, bool isCache = true); bool IsAnyColumn(string tableName, string column); bool IsPrimaryKey(string tableName, string column); bool IsIdentity(string tableName, string column); diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index 6d9df406e..c125eb326 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs @@ -172,43 +172,52 @@ namespace SqlSugar #endregion #region Methods - public override List GetColumnInfosByTableName(string tableName) + public override List GetColumnInfosByTableName(string tableName,bool isCache=true) { string cacheKey = "DbMaintenanceProvider.GetColumnInfosByTableName." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); cacheKey = GetCacheKey(cacheKey); + if (!isCache) + return GetColumnInfosByTableName(tableName); + else return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, () => { - string sql = "select * from " + tableName + " WHERE 1=2 "; - var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; - this.Context.Ado.IsEnableLogEvent = false; - using (DbDataReader reader = (DbDataReader)this.Context.Ado.GetDataReader(sql)) - { - this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; - List result = new List(); - var schemaTable = reader.GetSchemaTable(); - foreach (DataRow row in schemaTable.Rows) - { - DbColumnInfo column = new DbColumnInfo() - { - TableName = tableName, - DataType = row["DataType"].ToString().Replace("System.", "").Trim(), - IsNullable = (bool)row["AllowDBNull"], - //IsIdentity = (bool)row["IsAutoIncrement"], - ColumnDescription = GetFieldComment(tableName, row["ColumnName"].ToString()), - DbColumnName = row["ColumnName"].ToString(), - //DefaultValue = row["defaultValue"].ToString(), - IsPrimarykey = GetPrimaryKeyByTableNames(tableName).Any(it => it.Equals(row["ColumnName"].ToString(), StringComparison.CurrentCultureIgnoreCase)), - Length = row["ColumnSize"].ObjToInt(), - Scale = row["numericscale"].ObjToInt() - }; - result.Add(column); - } - return result; - } + return GetColumnInfosByTableName(tableName); }); } + + private List GetColumnInfosByTableName(string tableName) + { + string sql = "select * from " + tableName + " WHERE 1=2 "; + var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; + this.Context.Ado.IsEnableLogEvent = false; + using (DbDataReader reader = (DbDataReader)this.Context.Ado.GetDataReader(sql)) + { + this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; + List result = new List(); + var schemaTable = reader.GetSchemaTable(); + foreach (DataRow row in schemaTable.Rows) + { + DbColumnInfo column = new DbColumnInfo() + { + TableName = tableName, + DataType = row["DataType"].ToString().Replace("System.", "").Trim(), + IsNullable = (bool)row["AllowDBNull"], + //IsIdentity = (bool)row["IsAutoIncrement"], + ColumnDescription = GetFieldComment(tableName, row["ColumnName"].ToString()), + DbColumnName = row["ColumnName"].ToString(), + //DefaultValue = row["defaultValue"].ToString(), + IsPrimarykey = GetPrimaryKeyByTableNames(tableName).Any(it => it.Equals(row["ColumnName"].ToString(), StringComparison.CurrentCultureIgnoreCase)), + Length = row["ColumnSize"].ObjToInt(), + Scale = row["numericscale"].ObjToInt() + }; + result.Add(column); + } + return result; + } + } + private List GetPrimaryKeyByTableNames(string tableName) { string cacheKey = "DbMaintenanceProvider.GetPrimaryKeyByTableNames." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index beb31612f..859c519fd 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -164,41 +164,50 @@ namespace SqlSugar #endregion #region Methods - public override List GetColumnInfosByTableName(string tableName) + public override List GetColumnInfosByTableName(string tableName, bool isCache = true) { string cacheKey = "DbMaintenanceProvider.GetColumnInfosByTableName." + this.SqlBuilder.GetNoTranslationColumnName(tableName).ToLower(); cacheKey = GetCacheKey(cacheKey); + if (!isCache) + { + return GetColumnInfosByTableName(tableName); + } return this.Context.Utilities.GetReflectionInoCacheInstance().GetOrCreate(cacheKey, - () => - { - string sql = "select * from " + tableName + " limit 0,1"; - var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; - this.Context.Ado.IsEnableLogEvent = false; - using (DbDataReader reader = (SQLiteDataReader)this.Context.Ado.GetDataReader(sql)) - { - this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; - List result = new List(); - var schemaTable = reader.GetSchemaTable(); - foreach (DataRow row in schemaTable.Rows) - { - DbColumnInfo column = new DbColumnInfo() - { - TableName = tableName, - DataType = row["DataTypeName"].ToString().Trim(), - IsNullable = (bool)row["AllowDBNull"], - IsIdentity = (bool)row["IsAutoIncrement"], - ColumnDescription = null, - DbColumnName = row["ColumnName"].ToString(), - DefaultValue = row["defaultValue"].ToString(), - IsPrimarykey = (bool)row["IsKey"], - Length = Convert.ToInt32(row["ColumnSize"]) - }; - result.Add(column); - } - return result; - } + () => + { + return GetColumnsByTableName(tableName); - }); + }); + } + + private List GetColumnsByTableName(string tableName) + { + string sql = "select * from " + tableName + " limit 0,1"; + var oldIsEnableLog = this.Context.Ado.IsEnableLogEvent; + this.Context.Ado.IsEnableLogEvent = false; + using (DbDataReader reader = (SQLiteDataReader)this.Context.Ado.GetDataReader(sql)) + { + this.Context.Ado.IsEnableLogEvent = oldIsEnableLog; + List result = new List(); + var schemaTable = reader.GetSchemaTable(); + foreach (DataRow row in schemaTable.Rows) + { + DbColumnInfo column = new DbColumnInfo() + { + TableName = tableName, + DataType = row["DataTypeName"].ToString().Trim(), + IsNullable = (bool)row["AllowDBNull"], + IsIdentity = (bool)row["IsAutoIncrement"], + ColumnDescription = null, + DbColumnName = row["ColumnName"].ToString(), + DefaultValue = row["defaultValue"].ToString(), + IsPrimarykey = (bool)row["IsKey"], + Length = Convert.ToInt32(row["ColumnSize"]) + }; + result.Add(column); + } + return result; + } } public override bool CreateTable(string tableName, List columns, bool isCreatePrimaryKey = true) @@ -219,8 +228,9 @@ namespace SqlSugar } } string sql = GetCreateTableSql(tableName, columns); - if (!isCreatePrimaryKey) { - sql = sql.Replace("PRIMARY KEY AUTOINCREMENT","").Replace("PRIMARY KEY", ""); + if (!isCreatePrimaryKey) + { + sql = sql.Replace("PRIMARY KEY AUTOINCREMENT", "").Replace("PRIMARY KEY", ""); } this.Context.Ado.ExecuteCommand(sql); return true; @@ -239,7 +249,7 @@ namespace SqlSugar } string dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null; string nullType = item.IsNullable ? this.CreateTableNull : CreateTableNotNull; - string primaryKey = item.IsPrimarykey?this.CreateTablePirmaryKey:null; + string primaryKey = item.IsPrimarykey ? this.CreateTablePirmaryKey : null; string identity = item.IsIdentity ? this.CreateTableIdentity : null; string addItem = string.Format(this.CreateTableColumn, this.SqlBuilder.GetTranslationColumnName(columnName), dataType, dataSize, nullType, primaryKey, identity); columnArray.Add(addItem); diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite index 3219c0c590ebb8aa422fabfc9f8ac1bd62b27cc1..7fe81f78b314d3c4340e15794dcc5ded64043336 100644 GIT binary patch delta 43974 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 delta 54679 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