From 69b5ea419dffe74b1a235d455e2cf8539140fe87 Mon Sep 17 00:00:00 2001 From: "610262374@qq.com" <610262374@qq.com> Date: Mon, 13 Mar 2017 11:16:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OrmTest/Program.cs | 12 ++--- .../ExpressionsToSql/ExpressionContext.cs | 50 ++++++++++++------- 2 files changed, 37 insertions(+), 25 deletions(-) diff --git a/OrmTest/Program.cs b/OrmTest/Program.cs index 2cb461e5e..0e4e4bbc9 100644 --- a/OrmTest/Program.cs +++ b/OrmTest/Program.cs @@ -16,12 +16,12 @@ namespace OrmTest static void Main(string[] args) { //Unit Test - int eachCount = 1; - new Field(eachCount).Init(); - new Where(eachCount).Init(); - new Method(eachCount).Init(); - new JoinQuery(eachCount).Init(); - new SingleQuery(eachCount).Init(); + int eachCount = 10; + //new Field(eachCount).Init(); + //new Where(eachCount).Init(); + //new Method(eachCount).Init(); + //new JoinQuery(eachCount).Init(); + //new SingleQuery(eachCount).Init(); new SelectQuery(eachCount).Init(); } } diff --git a/SqlSugar/ExpressionsToSql/ExpressionContext.cs b/SqlSugar/ExpressionsToSql/ExpressionContext.cs index 0291dbf7a..b89727a27 100644 --- a/SqlSugar/ExpressionsToSql/ExpressionContext.cs +++ b/SqlSugar/ExpressionsToSql/ExpressionContext.cs @@ -23,10 +23,11 @@ namespace SqlSugar public MappingTableList MappingTables { get; set; } public List JoinQueryInfos { get; set; } - public bool IsJoin { + public bool IsJoin + { get { - return JoinQueryInfos.IsValuable(); + return JoinQueryInfos.IsValuable(); } } public ResolveExpressType ResolveType { get; set; } @@ -69,11 +70,11 @@ namespace SqlSugar #endregion #region public functions - public virtual string GetTranslationTableName(string name,bool isMapping=true) + public virtual string GetTranslationTableName(string name, bool isMapping = true) { Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name")); - if (name.Contains("[") && name.Contains("]")) return name; - if (isMapping&&this.MappingTables.IsValuable()) + if (IsTranslationText(name)) return name; + if (isMapping && this.MappingTables.IsValuable()) { if (name.Contains(".")) { @@ -83,7 +84,7 @@ namespace SqlSugar { columnInfo[columnInfo.Length - 1] = mappingInfo.EntityName; } - return string.Join(".", columnInfo.Select(it => "[" + it + "]")); + return string.Join(".", columnInfo.Select(it => GetTranslationText(it))); } else { @@ -95,28 +96,29 @@ namespace SqlSugar { if (name.Contains(".")) { - return string.Join(".", name.Split('.').Select(it => "[" + it + "]")); + return string.Join(".", name.Split('.').Select(it => GetTranslationText(it))); } else { - return "[" + name + "]"; + return GetTranslationText(name); } } } public virtual string GetTranslationColumnName(string name, bool isMapping = true) { Check.ArgumentNullException(name, string.Format(ErrorMessage.ObjNotExist, "Table Name Or Column Name")); - if (name.Contains("[") && name.Contains("]")) return name; - if (isMapping&&this.MappingColumns.IsValuable()) + if (IsTranslationText(name)) return name; + if (isMapping && this.MappingColumns.IsValuable()) { if (name.Contains(".")) { var columnInfo = name.Split('.'); var mappingInfo = this.MappingColumns.FirstOrDefault(it => it.EntityPropertyName.Equals(columnInfo.Last(), StringComparison.CurrentCultureIgnoreCase)); - if (mappingInfo != null) { - columnInfo[columnInfo.Length-1] = mappingInfo.DbColumnName; + if (mappingInfo != null) + { + columnInfo[columnInfo.Length - 1] = mappingInfo.DbColumnName; } - return string.Join(".", columnInfo.Select(it => "[" + it + "]")); + return string.Join(".", columnInfo.Select(it => GetTranslationText(it))); } else { @@ -124,17 +126,27 @@ namespace SqlSugar return "[" + (mappingInfo == null ? name : mappingInfo.DbColumnName) + "]"; } } - else { + else + { if (name.Contains(".")) { - return string.Join(".", name.Split('.').Select(it => "[" + it + "]")); + return string.Join(".", name.Split('.').Select(it => GetTranslationText(it))); } else { - return "[" + name + "]"; + return GetTranslationText(name); } } } + + public virtual bool IsTranslationText(string name) + { + return name.Contains("[") && name.Contains("]"); + } + public virtual string GetTranslationText(string name) + { + return "[" + name + "]"; + } public virtual void Resolve(Expression expression, ResolveExpressType resolveType) { this.ResolveType = resolveType; @@ -144,11 +156,11 @@ namespace SqlSugar } public virtual string GetAsString(string asName, string fieldValue) { - return string.Format(" {0} {1} {2} ", GetTranslationTableName(fieldValue), "AS", GetTranslationColumnName(asName,false)); + return string.Format(" {0} {1} {2} ", GetTranslationTableName(fieldValue), "AS", GetTranslationColumnName(asName, false)); } - public virtual string GetAsString(string asName, string fieldValue,string fieldShortName) + public virtual string GetAsString(string asName, string fieldValue, string fieldShortName) { - return string.Format(" {0} {1} {2} ", GetTranslationTableName(fieldShortName+"."+ fieldValue), "AS", GetTranslationTableName(asName,false)); + return string.Format(" {0} {1} {2} ", GetTranslationTableName(fieldShortName + "." + fieldValue), "AS", GetTranslationTableName(asName, false)); } public virtual void Clear() {