This commit is contained in:
2881099 2024-08-19 16:42:02 +08:00
parent 0c7d438f06
commit 3335a84158
3 changed files with 27 additions and 22 deletions

View File

@ -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.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) //.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=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") ////.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); BaseEntity.Initialization(fsql, () => _asyncUow.Value);
#endregion #endregion
fsql.UseJsonMap();
fsql.Select<Table11>().Where(a => a.Options.Value1 == 100 && a.Options.Value2 == "xx").ToList();
var usergroupRepository = fsql.GetAggregateRootRepository<UserGroup>(); var usergroupRepository = fsql.GetAggregateRootRepository<UserGroup>();
usergroupRepository.Delete(a => true); usergroupRepository.Delete(a => true);
@ -3311,4 +3314,16 @@ class DateTimeOffsetTypeHandler : TypeHandler<DateTimeOffset>
{ {
return DateTimeOffset.TryParse((string)value, out var dts) ? dts : DateTimeOffset.MinValue; 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; }
} }

View File

@ -93,11 +93,6 @@ public static class FreeSqlJsonMapCoreExtensions
case DataType.OdbcOracle: case DataType.OdbcOracle:
case DataType.CustomOracle: case DataType.CustomOracle:
case DataType.Dameng: case DataType.Dameng:
case DataType.PostgreSQL:
case DataType.OdbcPostgreSQL:
case DataType.CustomPostgreSQL:
case DataType.KingbaseES:
case DataType.ShenTong:
fsql.Aop.ParseExpression += (_, e) => fsql.Aop.ParseExpression += (_, e) =>
{ {
//if (e.Expression is MethodCallExpression callExp) //if (e.Expression is MethodCallExpression callExp)
@ -170,13 +165,7 @@ public static class FreeSqlJsonMapCoreExtensions
StyleJsonValue(); StyleJsonValue();
return; return;
} }
while (parentMemExps.Any()) StylePgJson();
{
memExp = parentMemExps.Pop();
var opt = parentMemExps.Any() ? "->" : $"->>{(memExp.Type.IsArrayOrList() ? "/*json array*/" : "")}";
result = $"{result}{opt}'{memExp.Member.Name}'";
}
e.Result = result;
return; return;
void StyleJsonExtract() void StyleJsonExtract()
@ -197,6 +186,16 @@ public static class FreeSqlJsonMapCoreExtensions
} }
e.Result = $"json_value({result},'${jsonPath}')"; 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;
}
} }
} }
} }

View File

@ -707,15 +707,6 @@
<param name="modelBuilder"></param> <param name="modelBuilder"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:FreeSqlDbContextExtensions.ApplyConfigurationsFromAssembly(FreeSql.ICodeFirst,System.Reflection.Assembly,System.Func{System.Type,System.Boolean})">
<summary>
根据Assembly扫描所有继承IEntityTypeConfiguration&lt;T&gt;的配置类
</summary>
<param name="codeFirst"></param>
<param name="assembly"></param>
<param name="predicate"></param>
<returns></returns>
</member>
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)"> <member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
<summary> <summary>
创建普通数据上下文档对象 创建普通数据上下文档对象