mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	完善 DuckDB
This commit is contained in:
		@@ -93,6 +93,7 @@ public static class FreeSqlJsonMapCoreExtensions
 | 
			
		||||
            case DataType.OdbcOracle:
 | 
			
		||||
            case DataType.CustomOracle:
 | 
			
		||||
            case DataType.Dameng:
 | 
			
		||||
            case DataType.DuckDB:
 | 
			
		||||
                fsql.Aop.ParseExpression += (_, e) =>
 | 
			
		||||
                {
 | 
			
		||||
                    //if (e.Expression is MethodCallExpression callExp)
 | 
			
		||||
@@ -164,6 +165,9 @@ public static class FreeSqlJsonMapCoreExtensions
 | 
			
		||||
                                        case DataType.Dameng:
 | 
			
		||||
                                            StyleJsonValue();
 | 
			
		||||
                                            return;
 | 
			
		||||
                                        case DataType.DuckDB:
 | 
			
		||||
                                            StyleDotAccess();
 | 
			
		||||
                                            return;
 | 
			
		||||
                                    }
 | 
			
		||||
                                    StylePgJson();
 | 
			
		||||
                                    return;
 | 
			
		||||
@@ -186,6 +190,15 @@ public static class FreeSqlJsonMapCoreExtensions
 | 
			
		||||
                                        }
 | 
			
		||||
                                        e.Result = $"json_value({result},'${jsonPath}')";
 | 
			
		||||
                                    }
 | 
			
		||||
                                    void StyleDotAccess()
 | 
			
		||||
                                    {
 | 
			
		||||
                                        while (parentMemExps.Any())
 | 
			
		||||
                                        {
 | 
			
		||||
                                            memExp = parentMemExps.Pop();
 | 
			
		||||
                                            result = $"{result}['{memExp.Member.Name}']";
 | 
			
		||||
                                        }
 | 
			
		||||
                                        e.Result = result;
 | 
			
		||||
                                    }
 | 
			
		||||
                                    void StylePgJson()
 | 
			
		||||
                                    {
 | 
			
		||||
                                        while (parentMemExps.Any())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user