From 9afdb9ce34d646f44b013aa469ea64d82eda39a3 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sun, 27 Mar 2022 01:52:45 +0800 Subject: [PATCH] Update SqlSugar.MySqlConnector --- .../MySql/DbMaintenance/MySqlDbMaintenance.cs | 6 +++--- .../MySql/SqlBuilder/MySqlExpressionContext.cs | 9 ++++++++- .../MySql/SqlBuilder/MySqlQueryBuilder.cs | 9 ++++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/DbMaintenance/MySqlDbMaintenance.cs index e5318d36f..2ae462f1c 100644 --- a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -341,11 +341,11 @@ namespace SqlSugar.MySqlConnector { if (item.ColumnDescription != null) { - if (item.UnderType == UtilConstants.GuidType && item.Length == 0) + var mySqlCodeFirst = this.Context.CodeFirst as MySqlCodeFirst; + if (item.UnderType == UtilConstants.GuidType&&item.Length==0) { item.Length = 36; } - var mySqlCodeFirst = this.Context.CodeFirst as MySqlCodeFirst; string sql = GetUpdateColumnSql(entity.DbTableName, mySqlCodeFirst.GetEntityColumnToDbColumn(entity, entity.DbTableName, item))+" "+(item.IsIdentity? "AUTO_INCREMENT" : "")+" " + " COMMENT '" + item.ColumnDescription + "'"; db.Ado.ExecuteCommand(sql); } @@ -439,7 +439,7 @@ namespace SqlSugar.MySqlConnector string template = "ALTER table {0} CHANGE COLUMN {1} {1} {3} default {2}"; var dbColumnInfo = this.Context.DbMaintenance.GetColumnInfosByTableName(tableName).First(it => it.DbColumnName.Equals(columnName, StringComparison.CurrentCultureIgnoreCase)); var value = Regex.Match(defaultValue, @"\(\d\)$").Value; - string sql = string.Format(template, tableName, columnName, defaultValue, dbColumnInfo.DataType); + string sql = string.Format(template, tableName, columnName, defaultValue, dbColumnInfo.DataType+ value); this.Context.Ado.ExecuteCommand(sql); return true; } diff --git a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlExpressionContext.cs b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlExpressionContext.cs index d031807f8..f75efc99b 100644 --- a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlExpressionContext.cs @@ -14,6 +14,13 @@ namespace SqlSugar.MySqlConnector } public class MySqlMethod : DefaultDbMethod, IDbMethods { + public override string DateDiff(MethodCallExpressionModel model) + { + var parameter = model.Args[0]; + var parameter2 = model.Args[1]; + var parameter3 = model.Args[2]; + return string.Format(" TIMESTAMPDIFF({0},{1},{2}) ", parameter.MemberValue?.ToString().ToSqlFilter(), parameter2.MemberName, parameter3.MemberName); + } public override string DateValue(MethodCallExpressionModel model) { var parameter = model.Args[0]; @@ -69,7 +76,7 @@ namespace SqlSugar.MySqlConnector var parameter = model.Args[0]; var parameter2 = model.Args[1]; var parameter3 = model.Args[2]; - if (parameter3.MemberValue.ObjToString() == "Millisecond") + if (parameter3.MemberValue.ObjToString() == "Millisecond") { parameter3.MemberValue = "Second"; return string.Format(" (DATE_ADD({1} , INTERVAL {2}/1000 {0})) ", parameter3.MemberValue, parameter.MemberName, parameter2.MemberName); diff --git a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlQueryBuilder.cs b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlQueryBuilder.cs index c8da0bb56..c69226ff6 100644 --- a/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlQueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar.MySqlConnector/MySql/SqlBuilder/MySqlQueryBuilder.cs @@ -71,7 +71,14 @@ namespace SqlSugar.MySqlConnector string result = null; sql = new StringBuilder(); sql.AppendFormat(SqlTemplate, "Count(*)", GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (Skip != null || Take != null) ? null : GetOrderByString); - if (IsCount) { return sql.ToString(); } + if (IsCount) + { + if (sql.ToString().Contains("-- No table")) + { + return "-- No table"; + } + return sql.ToString(); + } if (Skip != null && Take == null) { if (this.OrderByValue == "ORDER BY ") this.OrderByValue += GetSelectValue.Split(',')[0];