mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 12:28:15 +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