diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index e225edf8..5c694048 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -579,7 +579,7 @@ namespace base_entity //.UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;min pool size=1;Max pool size=3;AllowLoadLocalInfile=true") - .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") + //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") //.UseAdoConnectionPool(false) //.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2") ////.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=127.0.0.1;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2") @@ -619,6 +619,9 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + fsql.UseJsonMap(); + + fsql.Select().Where(a => a.Options.Value1 == 100 && a.Options.Value2 == "xx").ToList(); var usergroupRepository = fsql.GetAggregateRootRepository(); usergroupRepository.Delete(a => true); @@ -3311,4 +3314,16 @@ class DateTimeOffsetTypeHandler : TypeHandler { return DateTimeOffset.TryParse((string)value, out var dts) ? dts : DateTimeOffset.MinValue; } +} +class Table11 +{ + public int Id { get; set; } + + [JsonMap, Column(DbType = "json")] + public TableOptions Options { get; set; } +} +class TableOptions +{ + public int Value1 { get; set; } + public string Value2 { get; set; } } \ No newline at end of file diff --git a/Extensions/FreeSql.Extensions.JsonMap/JsonMapCore.cs b/Extensions/FreeSql.Extensions.JsonMap/JsonMapCore.cs index bf3e16ec..127af278 100644 --- a/Extensions/FreeSql.Extensions.JsonMap/JsonMapCore.cs +++ b/Extensions/FreeSql.Extensions.JsonMap/JsonMapCore.cs @@ -93,11 +93,6 @@ public static class FreeSqlJsonMapCoreExtensions case DataType.OdbcOracle: case DataType.CustomOracle: case DataType.Dameng: - case DataType.PostgreSQL: - case DataType.OdbcPostgreSQL: - case DataType.CustomPostgreSQL: - case DataType.KingbaseES: - case DataType.ShenTong: fsql.Aop.ParseExpression += (_, e) => { //if (e.Expression is MethodCallExpression callExp) @@ -170,13 +165,7 @@ public static class FreeSqlJsonMapCoreExtensions StyleJsonValue(); return; } - while (parentMemExps.Any()) - { - memExp = parentMemExps.Pop(); - var opt = parentMemExps.Any() ? "->" : $"->>{(memExp.Type.IsArrayOrList() ? "/*json array*/" : "")}"; - result = $"{result}{opt}'{memExp.Member.Name}'"; - } - e.Result = result; + StylePgJson(); return; void StyleJsonExtract() @@ -197,6 +186,16 @@ public static class FreeSqlJsonMapCoreExtensions } e.Result = $"json_value({result},'${jsonPath}')"; } + void StylePgJson() + { + while (parentMemExps.Any()) + { + memExp = parentMemExps.Pop(); + var opt = parentMemExps.Any() ? "->" : $"->>{(memExp.Type.IsArrayOrList() ? "/*json array*/" : "")}"; + result = $"{result}{opt}'{memExp.Member.Name}'"; + } + e.Result = result; + } } } } diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 510bb4c0..9eeabc28 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -707,15 +707,6 @@ - - - 根据Assembly扫描所有继承IEntityTypeConfiguration<T>的配置类 - - - - - - 创建普通数据上下文档对象