mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
JsonMap
This commit is contained in:
parent
0c7d438f06
commit
3335a84158
@ -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; }
|
||||||
}
|
}
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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<T>的配置类
|
|
||||||
</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>
|
||||||
创建普通数据上下文档对象
|
创建普通数据上下文档对象
|
||||||
|
Loading…
x
Reference in New Issue
Block a user