Skip to content

Commit 083166c

Browse files
committed
- 修复 pgsql + JsonMap 无法解析 poco 表达式树的问题;#2060
1 parent 988b4b9 commit 083166c

File tree

3 files changed

+11
-113
lines changed

3 files changed

+11
-113
lines changed

Examples/base_entity/Program.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,7 @@ static void Main(string[] args)
583583

584584
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true")
585585
//.UseAdoConnectionPool(false)
586-
//.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2")
586+
.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2")
587587
////.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2")
588588
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToLower)
589589

@@ -622,6 +622,10 @@ static void Main(string[] args)
622622
#endregion
623623

624624

625+
fsql.UseJsonMap();
626+
627+
fsql.Select<Table11>().Where(a => a.Options.Value1 == 100 && a.Options.Value2 == "xx").ToList();
628+
625629
fsql.Delete<BaseDistrict>().Where("1=1").ExecuteAffrows();
626630
var repoxx = fsql.GetRepository<VM_District_Child>();
627631
repoxx.DbContextOptions.EnableCascadeSave = true;
@@ -904,9 +908,6 @@ static void Main(string[] args)
904908

905909
var firebirdList01 = fsql.Select<User1>().ToList();
906910

907-
fsql.UseJsonMap();
908-
909-
fsql.Select<Table11>().Where(a => a.Options.Value1 == 100 && a.Options.Value2 == "xx").ToList();
910911

911912

912913

Extensions/FreeSql.Extensions.JsonMap/JsonMapCore.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ public static void UseJsonMap(this IFreeSql fsql, JsonSerializerSettings setting
9595
case DataType.CustomOracle:
9696
case DataType.Dameng:
9797
case DataType.DuckDB:
98+
case DataType.PostgreSQL:
99+
case DataType.OdbcPostgreSQL:
100+
case DataType.CustomPostgreSQL:
101+
case DataType.KingbaseES:
102+
case DataType.ShenTong:
98103
fsql.Aop.ParseExpression += (_, e) =>
99104
{
100105
//if (e.Expression is MethodCallExpression callExp)
@@ -205,6 +210,7 @@ e.Expression is MethodCallExpression callExp &&
205210
}
206211
break;
207212
}
213+
208214
//解析 POCO Json a.Customer.Name
209215
if (e.Expression.NodeType == ExpressionType.MemberAccess)
210216
LocalParseMemberExp(e.Expression as MemberExpression);

FreeSql/FreeSql.xml

Lines changed: 0 additions & 109 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)