diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs index 1890dccc..7384702e 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs @@ -15,6 +15,7 @@ using System.Drawing; using System.Linq; using System.Linq.Expressions; using System.Reflection; +using System.Security.Principal; using System.Text; using System.Threading; using System.Threading.Tasks; @@ -1069,7 +1070,13 @@ SELECT "); } public int ExecuteAffrows() => _insertProvider.ExecuteAffrows(); - public long ExecuteIdentity() => _insertProvider.ExecuteIdentity(); + public long ExecuteIdentity(string identityColumn = null) + { + if (_insertProvider._table.ColumnsByCs.TryGetValue(identityColumn, out var col) == false) + throw new Exception(CoreStrings.GetPrimarys_ParameterError_IsNotDictKey(identityColumn).Replace(nameof(ExecuteIdentity), "")); + col.Attribute.IsIdentity = true; + return _insertProvider.ExecuteIdentity(); + } public List> ExecuteInserted() => _insertProvider.ExecuteInserted(); #if net40 diff --git a/Providers/FreeSql.Provider.Xugu/XuguExpression.cs b/Providers/FreeSql.Provider.Xugu/XuguExpression.cs index 48648b3e..2c927b6b 100644 --- a/Providers/FreeSql.Provider.Xugu/XuguExpression.cs +++ b/Providers/FreeSql.Provider.Xugu/XuguExpression.cs @@ -251,7 +251,7 @@ namespace FreeSql.Xugu { case "Now": return _common.Now; case "UtcNow": return _common.NowUtc; - case "Today": return "convert(char(10),getdate(),120)"; + case "Today": return $"cast(date_format({_common.Now},'%Y-%m-%d') as datetime)"; case "MinValue": return "'1753/1/1 0:00:00'"; case "MaxValue": return "'9999/12/31 23:59:59'"; }