From b4bb18edc2fa8df25c5d0ca9f2ffd0c964aa7d40 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 17 Aug 2017 23:27:08 +0800 Subject: [PATCH] Code optimization --- Src/Asp.Net/SqlServerTest/Demos/1_Query.cs | 2 + .../SqlBuilderProvider/SqlBuilderProvider.cs | 49 ++++++++++++++++-- .../MySql/SqlBuilder/MySqlBuilder.cs | 41 +-------------- .../Oracle/SqlBuilder/OracleBuilder.cs | 40 +------------- .../SqlServer/SqlBuilder/SqlServerBuilder.cs | 41 +-------------- .../Sqlite/SqlBuilder/SqliteBuilder.cs | 41 +-------------- .../SqliteTest/DataBase/SqlSugar4xTest.sqlite | Bin 348160 -> 364544 bytes 7 files changed, 55 insertions(+), 159 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index cbedce321..b41c72ec3 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -186,6 +186,8 @@ namespace OrmTest.Demo var getDay1List = db.Queryable().Where(it=>it.CreateTime.Value.Hour==1).ToList(); var getDateAdd = db.Queryable().Where(it => it.CreateTime.Value.AddDays(1)==DateTime.Now).ToList(); var getDateIsSame= db.Queryable().Where(it => SqlFunc.DateIsSame(DateTime.Now,DateTime.Now,DateType.Hour)).ToList(); + + var getSqlList = db.Queryable().AS("(select * from student) t").ToList(); } public static void Page() { diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs index 67eabe909..e0be5710d 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs @@ -28,10 +28,49 @@ namespace SqlSugar #endregion #region abstract Methods - public abstract string GetTranslationTableName(string name); - public abstract string GetTranslationColumnName(string entityName, string propertyName); - public abstract string GetTranslationColumnName(string propertyName); - public abstract string GetNoTranslationColumnName(string name); + public virtual string GetTranslationTableName(string name) + { + Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name")); + if (name.IsContainsIn("(", ")", SqlTranslationLeft)) + { + return name; + } + var context = this.Context; + var mappingInfo = context + .MappingTables + .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase)); + name = (mappingInfo == null ? name : mappingInfo.DbTableName); + if (name.IsContainsIn("(", ")", SqlTranslationLeft)) + { + return name; + } + return SqlTranslationLeft + name + SqlTranslationRight; + } + public virtual string GetTranslationColumnName(string entityName, string propertyName) + { + Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name")); + Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name")); + var context = this.Context; + var mappingInfo = context + .MappingColumns + .FirstOrDefault(it => + it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && + it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); + return (mappingInfo == null ? SqlTranslationLeft + propertyName + SqlTranslationRight : SqlTranslationLeft + mappingInfo.DbColumnName + SqlTranslationRight); + } + + public virtual string GetTranslationColumnName(string propertyName) + { + if (propertyName.Contains(SqlTranslationLeft)) return propertyName; + else + return SqlTranslationLeft + propertyName + SqlTranslationRight; + } + + public virtual string GetNoTranslationColumnName(string name) + { + if (!name.Contains(SqlTranslationLeft)) return name; + return name == null ? string.Empty : Regex.Match(name, @".*"+"\\"+SqlTranslationLeft+"(.*?)"+"\\"+SqlTranslationRight+"").Groups[1].Value; + } #endregion #region Common SqlTemplate @@ -44,6 +83,8 @@ namespace SqlSugar return " HAVING " + sqlString; } public virtual string SqlParameterKeyWord { get { return "@"; } } + public abstract string SqlTranslationLeft { get; } + public abstract string SqlTranslationRight { get; } public virtual string SqlFalse { get { return "1=2 "; } } public virtual string SqlDateNow { get { return "GETDATE()"; } } #endregion diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlBuilder.cs index fd31a3e65..5b87048e5 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlBuilder.cs @@ -6,44 +6,7 @@ namespace SqlSugar { public class MySqlBuilder : SqlBuilderProvider { - public override string GetTranslationTableName(string name) - { - Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - if (name.IsContainsIn("`", "(", ")")) - { - return name; - } - var context = this.Context; - var mappingInfo = context - .MappingTables - .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase)); - name = (mappingInfo == null ? name : mappingInfo.DbTableName); - return "`" + name + "`"; - } - public override string GetTranslationColumnName(string entityName, string propertyName) - { - Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name")); - var context = this.Context; - var mappingInfo = context - .MappingColumns - .FirstOrDefault(it => - it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && - it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); - return (mappingInfo == null ? "`" + propertyName + "`" : "`" + mappingInfo.DbColumnName + "`"); - } - - public override string GetTranslationColumnName(string propertyName) - { - if (propertyName.Contains("`")) return propertyName; - else - return "`" + propertyName + "`"; - } - - public override string GetNoTranslationColumnName(string name) - { - if (!name.Contains("`")) return name; - return name == null ? string.Empty : Regex.Match(name, @".*\`(.*?)\`").Groups[1].Value; - } + public override string SqlTranslationLeft { get { return "`"; } } + public override string SqlTranslationRight { get { return "`"; } } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleBuilder.cs index 12e63e3e3..3f11ba5c5 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/SqlBuilder/OracleBuilder.cs @@ -9,43 +9,7 @@ namespace SqlSugar { public class OracleBuilder : SqlBuilderProvider { - public override string GetTranslationTableName(string name) - { - Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - var context = this.Context; - var mappingInfo = context - .MappingTables - .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase)); - name = (mappingInfo == null ? name : mappingInfo.DbTableName); - if (name.Contains("\"")) - return name; - else - return "\"" + name + "\""; - } - public override string GetTranslationColumnName(string entityName, string propertyName) - { - Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name")); - var context = this.Context; - var mappingInfo = context - .MappingColumns - .FirstOrDefault(it => - it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && - it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); - return (mappingInfo == null ? "\"" + propertyName + "\"" : "\"" + mappingInfo.DbColumnName + "\""); - } - - public override string GetTranslationColumnName(string propertyName) - { - if (propertyName.Contains("\"")) return propertyName; - else - return "\"" + propertyName + "\""; - } - - public override string GetNoTranslationColumnName(string name) - { - if (!name.Contains("\"")) return name; - return name == null ? string.Empty : Regex.Match(name, @".*""(.*?)""").Groups[1].Value; - } + public override string SqlTranslationLeft { get { return "\""; } } + public override string SqlTranslationRight { get { return "\""; } } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerBuilder.cs index 488e70ece..51fbbf41b 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerBuilder.cs @@ -9,44 +9,7 @@ namespace SqlSugar { public class SqlServerBuilder : SqlBuilderProvider { - public override string GetTranslationTableName(string name) - { - Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - if (name.IsContainsIn("(", ")", "[")) - { - return name; - } - var context = this.Context; - var mappingInfo = context - .MappingTables - .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase)); - name = (mappingInfo == null ? name : mappingInfo.DbTableName); - return "[" + name + "]"; - } - public override string GetTranslationColumnName(string entityName, string propertyName) - { - Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name")); - var context = this.Context; - var mappingInfo = context - .MappingColumns - .FirstOrDefault(it => - it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && - it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); - return (mappingInfo == null ? "[" + propertyName + "]" : "[" + mappingInfo.DbColumnName + "]"); - } - - public override string GetTranslationColumnName(string propertyName) - { - if (propertyName.Contains("[")) return propertyName; - else - return "[" + propertyName + "]"; - } - - public override string GetNoTranslationColumnName(string name) - { - if (!name.Contains("[")) return name; - return name == null ? string.Empty : Regex.Match(name, @".*\[(.*?)\]").Groups[1].Value; - } + public override string SqlTranslationLeft { get { return "["; } } + public override string SqlTranslationRight { get { return "]"; } } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteBuilder.cs index 97ad6182d..3041ac147 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteBuilder.cs @@ -6,44 +6,7 @@ namespace SqlSugar { public class SqliteBuilder : SqlBuilderProvider { - - public override string GetTranslationTableName(string name) - { - Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - if (name.IsContainsIn("`", "(", ")")) - { - return name; - } - var context = this.Context; - var mappingInfo = context - .MappingTables - .FirstOrDefault(it => it.EntityName.Equals(name, StringComparison.CurrentCultureIgnoreCase)); - return "`" + (mappingInfo == null ? name : mappingInfo.DbTableName) + "`"; - } - public override string GetTranslationColumnName(string entityName, string propertyName) - { - Check.ArgumentNullException(entityName, string.Format(ErrorMessage.ObjNotExist, "Table Name")); - Check.ArgumentNullException(propertyName, string.Format(ErrorMessage.ObjNotExist, "Column Name")); - var context = this.Context; - var mappingInfo = context - .MappingColumns - .FirstOrDefault(it => - it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase) && - it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase)); - return (mappingInfo == null ? "`" + propertyName + "`" : "`" + mappingInfo.DbColumnName + "`"); - } - - public override string GetTranslationColumnName(string propertyName) - { - if (propertyName.Contains("`")) return propertyName; - else - return "`" + propertyName + "`"; - } - - public override string GetNoTranslationColumnName(string name) - { - if (!name.Contains("`")) return name; - return name == null ? string.Empty : Regex.Match(name, @".*\`(.*?)\`").Groups[1].Value; - } + public override string SqlTranslationLeft { get { return "`"; } } + public override string SqlTranslationRight { get { return "`"; } } } } diff --git a/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite b/Src/Asp.Net/SqliteTest/DataBase/SqlSugar4xTest.sqlite index e01d466e3ac695b5f145f044371527a10d940cf4..36f39a4851e1c1d139d45a7583b5e1742377c8a3 100644 GIT binary patch literal 364544 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