- 优化 TypeHandlers 支持 Enum 枚举映射规则;#1634

This commit is contained in:
2881099
2024-02-08 13:06:43 +08:00
parent 91362ad07a
commit 53443dc22b
34 changed files with 120 additions and 529 deletions

View File

@ -54,19 +54,21 @@ namespace FreeSql.MsAccess
else if (param is char)
return string.Concat("'", param.ToString().Replace("'", "''").Replace('\0', ' '), "'");
else if (param is Enum)
return ((Enum)param).ToInt64();
return AddslashesTypeHandler(param.GetType(), param) ?? ((Enum)param).ToInt64();
else if (decimal.TryParse(string.Concat(param), out var trydec))
return param;
else if (param is DateTime)
{
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime), out var typeHandler)) return typeHandler.Serialize(param);
var result = AddslashesTypeHandler(typeof(DateTime), param);
if (result != null) return result;
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
return string.Concat("cdate('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "')");
}
else if (param is DateTime?)
{
if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
var result = AddslashesTypeHandler(typeof(DateTime?), param);
if (result != null) return result;
if (param.Equals(DateTime.MinValue) == true) param = new DateTime(1970, 1, 1);
return string.Concat("cdate('", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss"), "')");
}