mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	- 优化 TypeHandlers 支持 Enum 枚举映射规则;#1634
This commit is contained in:
		@@ -60,20 +60,14 @@ namespace FreeSql.QuestDb
 | 
			
		||||
            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);
 | 
			
		||||
                return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
 | 
			
		||||
            }
 | 
			
		||||
                return AddslashesTypeHandler(typeof(DateTime), param) ?? string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
 | 
			
		||||
            else if (param is DateTime?)
 | 
			
		||||
            {
 | 
			
		||||
                if (Utils.TypeHandlers.TryGetValue(typeof(DateTime?), out var typeHandler)) return typeHandler.Serialize(param);
 | 
			
		||||
                return string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
 | 
			
		||||
            }
 | 
			
		||||
                return AddslashesTypeHandler(typeof(DateTime?), param) ?? string.Concat("'", ((DateTime)param).ToString("yyyy-MM-dd HH:mm:ss.ffffff"), "'");
 | 
			
		||||
 | 
			
		||||
            else if (param is TimeSpan || param is TimeSpan?)
 | 
			
		||||
                return (long)((TimeSpan)param).TotalSeconds;
 | 
			
		||||
@@ -86,10 +80,10 @@ namespace FreeSql.QuestDb
 | 
			
		||||
            {
 | 
			
		||||
                var pgdics = isdic ? param as Dictionary<string, string> :
 | 
			
		||||
                    param as IEnumerable<KeyValuePair<string, string>>;
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                var pghstore = new StringBuilder("'");
 | 
			
		||||
                var pairs = pgdics.ToArray();
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                for (var i = 0; i < pairs.Length; i++)
 | 
			
		||||
                {
 | 
			
		||||
                    if (i != 0) pghstore.Append(",");
 | 
			
		||||
@@ -101,7 +95,7 @@ namespace FreeSql.QuestDb
 | 
			
		||||
                    else
 | 
			
		||||
                        pghstore.AppendFormat("\"{0}\"", pairs[i].Value.Replace("'", "''"));
 | 
			
		||||
                }
 | 
			
		||||
                
 | 
			
		||||
 | 
			
		||||
                return pghstore.Append("'::hstore");
 | 
			
		||||
            }
 | 
			
		||||
            else if (param is IEnumerable)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user