mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 03:53:21 +08:00
- 修复 Pgsql string[] 属性表达式 Contains 缺少类型转换的 SQL 语法错误;
This commit is contained in:
parent
bd83f67b7b
commit
0a3e173662
@ -67,6 +67,7 @@ namespace FreeSql.Tests.PostgreSQLExpression
|
||||
|
||||
var sql1 = select.Where(a => a.testFieldIntArray.Contains(1)).ToList();
|
||||
var sql2 = select.Where(a => a.testFieldIntArray.Contains(1) == false).ToList();
|
||||
var sql121 = select.Where(a => a.testFieldStringArray.Contains("aaa") == false).ToList();
|
||||
|
||||
//in not in
|
||||
var sql111 = select.Where(a => new[] { 1, 2, 3 }.Contains(a.testFieldInt)).ToList();
|
||||
|
@ -135,7 +135,13 @@ namespace FreeSql.Odbc.PostgreSQL
|
||||
if (left.StartsWith("(") || left.EndsWith(")"))
|
||||
return $"{right1} in {left}";
|
||||
if (right1.StartsWith("(") || right1.EndsWith(")")) right1 = $"array[{right1.TrimStart('(').TrimEnd(')')}]";
|
||||
return $"({left} @> array[{right1}])";
|
||||
right1 = $"array[{right1}]";
|
||||
if (objExp != null)
|
||||
{
|
||||
var dbinfo = _common._orm.CodeFirst.GetDbInfo(objExp.Type);
|
||||
if (dbinfo.HasValue) right1 = $"{right1}::{dbinfo.Value.dbtype}";
|
||||
}
|
||||
return $"({left} @> {right1})";
|
||||
case "Concat":
|
||||
if (left.StartsWith("(") || left.EndsWith(")")) left = $"array[{left.TrimStart('(').TrimEnd(')')}]";
|
||||
var right2 = getExp(callExp.Arguments[argIndex]);
|
||||
|
@ -164,7 +164,13 @@ namespace FreeSql.PostgreSQL
|
||||
if (left.StartsWith("(") || left.EndsWith(")"))
|
||||
return $"{right1} in {left}";
|
||||
if (right1.StartsWith("(") || right1.EndsWith(")")) right1 = $"array[{right1.TrimStart('(').TrimEnd(')')}]";
|
||||
return $"({left} @> array[{right1}])";
|
||||
right1 = $"array[{right1}]";
|
||||
if (objExp != null)
|
||||
{
|
||||
var dbinfo = _common._orm.CodeFirst.GetDbInfo(objExp.Type);
|
||||
if (dbinfo.HasValue) right1 = $"{right1}::{dbinfo.Value.dbtype}";
|
||||
}
|
||||
return $"({left} @> {right1})";
|
||||
case "Concat":
|
||||
if (left.StartsWith("(") || left.EndsWith(")")) left = $"array[{left.TrimStart('(').TrimEnd(')')}]";
|
||||
var right2 = getExp(callExp.Arguments[argIndex]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user