From 55000de8c598207578ad1a59ff75f808dde5bb0a Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Sat, 23 Nov 2024 12:57:54 +0800
Subject: [PATCH] =?UTF-8?q?v3.5.100-preview20241123=20-=20=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E5=88=B0=20.net90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Directory.Build.props | 2 +-
Examples/base_entity/base_entity.csproj | 1 -
.../FreeSql.Extensions.AggregateRoot.csproj | 2 +-
.../FreeSql.Extensions.BaseEntity.csproj | 2 +-
.../FreeSql.Extensions.JsonMap.csproj | 2 +-
.../FreeSql.Extensions.LazyLoading.csproj | 2 +-
.../FreeSql.Extensions.Linq.csproj | 2 +-
.../FreeSql.Extensions.ZeroEntity.csproj | 2 +-
.../FreeSql.Generator.csproj | 2 +-
FreeSql.All/FreeSql.All.csproj | 2 +-
FreeSql.DbContext/FreeSql.DbContext.csproj | 14 +-
FreeSql.Repository/FreeSql.Repository.csproj | 4 +-
FreeSql/FreeSql.csproj | 2 +-
FreeSql/FreeSql.xml | 198 +++++++++---------
.../FreeSql.Provider.ClickHouse.csproj | 2 +-
.../FreeSql.Provider.Custom.csproj | 2 +-
.../FreeSql.Provider.Dameng.csproj | 2 +-
.../DuckdbAdo/DuckdbAdo.cs | 1 +
.../FreeSql.Provider.Duckdb/DuckdbUtils.cs | 1 +
.../FreeSql.Provider.Duckdb.csproj | 10 +-
.../FreeSql.Provider.Firebird.csproj | 8 +-
.../FreeSql.Provider.GBase.csproj | 2 +-
.../FreeSql.Provider.KingbaseES.csproj | 6 +-
.../FreeSql.Provider.MsAccess.csproj | 2 +-
.../FreeSql.Provider.MySql.csproj | 11 +-
.../FreeSql.Provider.MySqlConnector.csproj | 14 +-
.../FreeSql.Provider.Odbc.csproj | 2 +-
.../FreeSql.Provider.Oracle.csproj | 12 +-
.../FreeSql.Provider.OracleOledb.csproj | 2 +-
.../FreeSql.Provider.PostgreSQL.csproj | 8 +-
.../PostgreSQLAdo/PostgreSQLTypesConverter.cs | 111 +++++++++-
.../PostgreSQLTypesExtensions.cs | 2 +-
.../FreeSql.Provider.QuestDb.csproj | 2 +-
.../FreeSql.Provider.ShenTong.csproj | 2 +-
.../FreeSql.Provider.SqlServer.csproj | 12 +-
...FreeSql.Provider.SqlServerForSystem.csproj | 6 +-
.../FreeSql.Provider.Sqlite.csproj | 2 +-
.../FreeSql.Provider.SqliteCore.csproj | 2 +-
.../FreeSql.Provider.Xugu.csproj | 2 +-
39 files changed, 280 insertions(+), 183 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index 7db6e7191..725e8932b 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -12,7 +12,7 @@
diff --git a/Examples/base_entity/base_entity.csproj b/Examples/base_entity/base_entity.csproj
index 9dc7e296a..a6df2b756 100644
--- a/Examples/base_entity/base_entity.csproj
+++ b/Examples/base_entity/base_entity.csproj
@@ -15,7 +15,6 @@
-
diff --git a/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj b/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj
index 6581dff69..16cf1f289 100644
--- a/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj
+++ b/Extensions/FreeSql.Extensions.AggregateRoot/FreeSql.Extensions.AggregateRoot.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
index ce12c130c..23bd86112 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
+++ b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
@@ -19,7 +19,7 @@
key.snk
false
latest
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
index 937570027..f5bce1549 100644
--- a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
+++ b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
index 381868ecc..fb102e8cc 100644
--- a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
+++ b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
@@ -15,7 +15,7 @@
$(AssemblyName)
true
true
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj b/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj
index 227fb1e41..1dfd71ee0 100644
--- a/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj
+++ b/Extensions/FreeSql.Extensions.Linq/FreeSql.Extensions.Linq.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.csproj b/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.csproj
index 8770ab876..ae5ce181d 100644
--- a/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.csproj
+++ b/Extensions/FreeSql.Extensions.ZeroEntity/FreeSql.Extensions.ZeroEntity.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
index 6c8e04278..014c6c68e 100644
--- a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
+++ b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
@@ -13,7 +13,7 @@
https://github.com/2881099/FreeSql
https://github.com/2881099/FreeSql
FreeSql DbFirst 实体生成器
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/FreeSql.All/FreeSql.All.csproj b/FreeSql.All/FreeSql.All.csproj
index 46b55b9f8..0fe802877 100644
--- a/FreeSql.All/FreeSql.All.csproj
+++ b/FreeSql.All/FreeSql.All.csproj
@@ -17,7 +17,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/FreeSql.DbContext/FreeSql.DbContext.csproj b/FreeSql.DbContext/FreeSql.DbContext.csproj
index ba90924e9..f049676ee 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.csproj
+++ b/FreeSql.DbContext/FreeSql.DbContext.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;net5.0;netstandard2.1;netcoreapp3.1;netstandard2.0;net45;net40
+ net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45;net40
true
FreeSql;ncc;YeXiangQin
FreeSql is the ORM in .NetCore, .NetFramework, And Xamarin. It supports Mysql, Postgresql, SqlServer, Oracle, Sqlite, Firebird, Clickhouse, DuckDB, TDengine, QuestDB, Odbc, Oledb, 达梦, 人大金仓, 南大通用, 虚谷, 神舟通用, 翰高, And Access
@@ -17,7 +17,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -35,10 +35,13 @@
net40
-
+
netcoreapp
+
+
+
@@ -58,9 +61,4 @@
-
-
-
-
-
diff --git a/FreeSql.Repository/FreeSql.Repository.csproj b/FreeSql.Repository/FreeSql.Repository.csproj
index e885fc124..ccc20c59d 100644
--- a/FreeSql.Repository/FreeSql.Repository.csproj
+++ b/FreeSql.Repository/FreeSql.Repository.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45;net40
+ net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45;net40
FreeSql;ncc;YeXiangQin
FreeSql Implementation of General Repository, Support MySql/SqlServer/PostgreSQL/Oracle/Sqlite/Firebird/Clickhouse/DuckDB/TDengine/QuestDB/达梦/人大金仓/南大通用/虚谷/神舟通用/翰高/Access, and read/write separation、and split table.
https://github.com/2881099/FreeSql/wiki/Repository
@@ -17,7 +17,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj
index 0eff1a6e3..e9d57eaa2 100644
--- a/FreeSql/FreeSql.csproj
+++ b/FreeSql/FreeSql.csproj
@@ -17,7 +17,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index c21ae6656..cb1addf59 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -1660,6 +1660,104 @@
+
+
+ 指定事务对象
+
+
+
+
+ 原生sql语法条件,Where("id = @id", new { id = 1 })
+ 提示:parms 参数还可以传 Dictionary<string, object>
+
+ true 时生效
+ sql语法条件
+ 参数
+
+
+
+
+ 传入实体,将主键作为条件
+
+ 实体
+
+
+
+
+ 传入实体集合,将主键作为条件
+
+ 实体集合
+
+
+
+
+ 传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
+
+ 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
+ 是否标识为NOT
+
+
+
+
+ 动态过滤条件
+
+
+
+
+
+
+ 禁用全局过滤功能,不传参数时将禁用所有
+
+ 零个或多个过滤器名字
+
+
+
+
+ 设置表名规则,可用于分库/分表,参数1:默认表名;返回值:新表名;
+
+
+
+
+
+
+ 设置表名
+
+
+
+
+
+
+ 动态Type,在使用 Delete<object> 后使用本方法,指定实体类型
+
+
+
+
+
+
+ 返回即将执行的SQL语句
+
+
+
+
+
+ 执行SQL语句,返回影响的行数
+
+
+
+
+
+ 执行SQL语句,返回被删除的记录
+ 注意:此方法只有 Postgresql/SqlServer/Maridb/Firebird/人大金仓 有效果
+
+
+
+
+
+ 指定事务对象
+
+
+
+
指定事务对象
@@ -4205,105 +4303,7 @@
同步实体类型到数据库(指定表名)
注意:生产环境中谨慎使用
- 实体类型
- 指定表名对比
- 强制同步结构,无视缓存每次都同步
-
-
-
- 根据 System.Type 获取数据库信息
-
-
-
-
-
-
- FreeSql FluentApi 配置实体,方法名与特性相同
-
-
-
-
-
-
-
- FreeSql FluentApi 配置实体,方法名与特性相同
-
-
-
-
-
-
-
- 获取 FreeSql FluentApi 配置实体的元数据
-
-
- 未使用ConfigEntity配置时,返回null
-
-
-
- 获取实体类核心配置
-
-
-
-
-
-
- 获取所有数据库
-
-
-
-
-
- 获取指定数据库的表信息,包括表、列详情、主键、唯一键、索引、外键、备注
-
-
-
-
-
-
- 获取指定单表信息,包括列详情、主键、唯一键、索引、备注
-
- 表名,如:dbo.table1
- 是否忽略大小写
-
-
-
-
- 判断表是否存在
-
- 表名,如:dbo.table1
- 是否忽略大小写
-
-
-
-
- 获取数据库枚举类型int值
-
-
-
-
-
-
- 获取c#转换,(int)、(long)
-
-
-
-
-
-
- 获取c#值
-
-
-
-
-
-
- 获取c#类型,int、long
-
-
-
-
-
+
获取c#类型对象
diff --git a/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj b/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj
index d6a582082..77b7c67bb 100644
--- a/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj
+++ b/Providers/FreeSql.Provider.ClickHouse/FreeSql.Provider.ClickHouse.csproj
@@ -19,7 +19,7 @@
False
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj b/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj
index ae5fbbb08..a62270790 100644
--- a/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj
+++ b/Providers/FreeSql.Provider.Custom/FreeSql.Provider.Custom.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj b/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj
index 4d50cd7b4..f55613d9c 100644
--- a/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj
+++ b/Providers/FreeSql.Provider.Dameng/FreeSql.Provider.Dameng.csproj
@@ -15,7 +15,7 @@
$(AssemblyName)
true
true
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.Duckdb/DuckdbAdo/DuckdbAdo.cs b/Providers/FreeSql.Provider.Duckdb/DuckdbAdo/DuckdbAdo.cs
index ae55f5817..c3fa1a4ff 100644
--- a/Providers/FreeSql.Provider.Duckdb/DuckdbAdo/DuckdbAdo.cs
+++ b/Providers/FreeSql.Provider.Duckdb/DuckdbAdo/DuckdbAdo.cs
@@ -10,6 +10,7 @@ using System.Linq;
using FreeSql.Internal.CommonProvider;
using DuckDB.NET.Data;
using static DuckDB.NET.Native.NativeMethods;
+using ColumnInfo = FreeSql.Internal.Model.ColumnInfo;
namespace FreeSql.Duckdb
{
diff --git a/Providers/FreeSql.Provider.Duckdb/DuckdbUtils.cs b/Providers/FreeSql.Provider.Duckdb/DuckdbUtils.cs
index 14ea176ea..b0bd0a6a3 100644
--- a/Providers/FreeSql.Provider.Duckdb/DuckdbUtils.cs
+++ b/Providers/FreeSql.Provider.Duckdb/DuckdbUtils.cs
@@ -13,6 +13,7 @@ using System.Numerics;
using static DuckDB.NET.Native.NativeMethods;
using System.Text;
using System.Security.AccessControl;
+using ColumnInfo = FreeSql.Internal.Model.ColumnInfo;
namespace FreeSql.Duckdb
{
diff --git a/Providers/FreeSql.Provider.Duckdb/FreeSql.Provider.Duckdb.csproj b/Providers/FreeSql.Provider.Duckdb/FreeSql.Provider.Duckdb.csproj
index b60510758..e69f6c6b4 100644
--- a/Providers/FreeSql.Provider.Duckdb/FreeSql.Provider.Duckdb.csproj
+++ b/Providers/FreeSql.Provider.Duckdb/FreeSql.Provider.Duckdb.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0
+ net9.0;net8.0;net7.0;net6.0;netstandard2.0
true
FreeSql;ncc;YeXiangQin
FreeSql + DuckDB is a fast in-process analytical database,supports .NetCore、.NetFramework4.6.1+
@@ -18,24 +18,24 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
-
+
-
+
-
+
net60
diff --git a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj
index fb9892b16..93fc741bb 100644
--- a/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj
+++ b/Providers/FreeSql.Provider.Firebird/FreeSql.Provider.Firebird.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;net452
+ netstandard2.1;netstandard2.0;net452
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 Firebird
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj b/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj
index c3d1bb37c..952ce5237 100644
--- a/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj
+++ b/Providers/FreeSql.Provider.GBase/FreeSql.Provider.GBase.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj b/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj
index 34d74d719..5ad16ea2c 100644
--- a/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj
+++ b/Providers/FreeSql.Provider.KingbaseES/FreeSql.Provider.KingbaseES.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0;net461
+ net9.0;net8.0;net7.0;net6.0;netstandard2.0;net461
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 人大金仓数据库 V008R003/V008R006 Ado.Net (Kdbndp)
@@ -15,7 +15,7 @@
$(AssemblyName)
true
true
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -50,7 +50,7 @@
ns20;netstandard20
-
+
net60
diff --git a/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj b/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj
index 55890cc22..4e38e702e 100644
--- a/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj
+++ b/Providers/FreeSql.Provider.MsAccess/FreeSql.Provider.MsAccess.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj
index d9527bed9..6937f9f53 100644
--- a/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj
+++ b/Providers/FreeSql.Provider.MySql/FreeSql.Provider.MySql.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0;net452;net451;net45;net40
+ net9.0;net8.0;net7.0;net6.0;netstandard2.1;netstandard2.0;net452;net451;net45;net40
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 MySql 5.6,Ado.Net 驱动是 MySql.Data(Oracle官方)
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -27,7 +27,10 @@
-
+
+
+
+
@@ -41,7 +44,7 @@
net40
-
+
net60
diff --git a/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj b/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj
index 2d31ddb6d..104e9fe3f 100644
--- a/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj
+++ b/Providers/FreeSql.Provider.MySqlConnector/FreeSql.Provider.MySqlConnector.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net45
+ net9.0;net8.0;net7.0;net6.0;netstandard2.1;netstandard2.0;net45
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 MySql 5.6,Ado.Net 驱动是 MySqlConnector
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -27,8 +27,12 @@
-
-
+
+
+
+
+
+
@@ -45,7 +49,7 @@
MySqlConnector
-
+
net60;MySqlConnector
diff --git a/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj b/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj
index 04e826c6d..0acbda797 100644
--- a/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj
+++ b/Providers/FreeSql.Provider.Odbc/FreeSql.Provider.Odbc.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj b/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj
index b1c754c5b..453002fe3 100644
--- a/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj
+++ b/Providers/FreeSql.Provider.Oracle/FreeSql.Provider.Oracle.csproj
@@ -1,7 +1,7 @@
- net6.0;net5.0;netstandard2.1;netstandard2.0;net45;net40
+ net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp31;netstandard2.1;net45;net40
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 Oracle 11
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -27,13 +27,9 @@
-
-
+
+
-
-
-
-
diff --git a/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj b/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj
index b90959036..8b25b6679 100644
--- a/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj
+++ b/Providers/FreeSql.Provider.OracleOledb/FreeSql.Provider.OracleOledb.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj
index 834a72d8a..95eecd044 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj
+++ b/Providers/FreeSql.Provider.PostgreSQL/FreeSql.Provider.PostgreSQL.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0;net461;net452;net451;net45
+ net9.0;net8.0;net7.0;net6.0;netstandard2.0;net461;net452;net451;net45
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 PostgreSQL 9.5
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -31,7 +31,7 @@
-
+
@@ -49,7 +49,7 @@
nts
-
+
net60
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesConverter.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesConverter.cs
index 16e05bd09..5703740e5 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesConverter.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesConverter.cs
@@ -1,11 +1,14 @@
using Newtonsoft.Json.Linq;
-using Npgsql;
using NpgsqlTypes;
using System;
using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.NetworkInformation;
+using System.Text.RegularExpressions;
namespace Newtonsoft.Json
{
@@ -57,6 +60,98 @@ namespace Newtonsoft.Json
return false;
}
+
+ private static readonly Regex NpgsqlPointParseRegex = new Regex("\\((-?\\d+.?\\d*),(-?\\d+.?\\d*)\\)");
+ static NpgsqlPoint NpgsqlPointParse(string s)
+ {
+ Match match = NpgsqlPointParseRegex.Match(s);
+ if (!match.Success)
+ throw new FormatException("Not a valid point: " + s);
+
+ return new NpgsqlPoint(double.Parse(match.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat), double.Parse(match.Groups[2].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat));
+ }
+ static readonly Regex NpgsqlLineRegex = new Regex(@"\{(-?\d+.?\d*),(-?\d+.?\d*),(-?\d+.?\d*)\}");
+ static NpgsqlLine NpgsqlLineParse(string s)
+ {
+ var m = NpgsqlLineRegex.Match(s);
+ if (!m.Success)
+ throw new FormatException("Not a valid line: " + s);
+ return new NpgsqlLine(
+ double.Parse(m.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[2].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[3].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat)
+ );
+ }
+ static readonly Regex NpgsqlLSegRegex = new Regex(@"\[\((-?\d+.?\d*),(-?\d+.?\d*)\),\((-?\d+.?\d*),(-?\d+.?\d*)\)\]");
+ static NpgsqlLSeg NpgsqlLSegParse(string s)
+ {
+ var m = NpgsqlLSegRegex.Match(s);
+ if (!m.Success)
+ {
+ throw new FormatException("Not a valid line: " + s);
+ }
+ return new NpgsqlLSeg(
+ double.Parse(m.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[2].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[3].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[4].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat)
+ );
+ }
+ static readonly Regex NpgsqlBoxRegex = new Regex(@"\((-?\d+.?\d*),(-?\d+.?\d*)\),\((-?\d+.?\d*),(-?\d+.?\d*)\)");
+ static NpgsqlBox NpgsqlBoxParse(string s)
+ {
+ var m = NpgsqlBoxRegex.Match(s);
+ return new NpgsqlBox(
+ new NpgsqlPoint(double.Parse(m.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[2].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat)),
+ new NpgsqlPoint(double.Parse(m.Groups[3].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[4].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat))
+ );
+ }
+ static NpgsqlPath NpgsqlPathParse(string s)
+ {
+ var open = s[0] == '[' ? true : (s[0] == '(' ? false : throw new Exception("Invalid path string: " + s));
+ Debug.Assert(s[s.Length - 1] == (open ? ']' : ')'));
+ var result = new NpgsqlPath(open);
+ var i = 1;
+ while (true)
+ {
+ var i2 = s.IndexOf(')', i);
+ result.Add(NpgsqlPointParse(s.Substring(i, i2 - i + 1)));
+ if (s[i2 + 1] != ',')
+ break;
+ i = i2 + 2;
+ }
+ return result;
+ }
+ static NpgsqlPolygon NpgsqlPolygonParse(string s)
+ {
+ var points = new List();
+ var i = 1;
+ while (true)
+ {
+ var i2 = s.IndexOf(')', i);
+ points.Add(NpgsqlPointParse(s.Substring(i, i2 - i + 1)));
+ if (s[i2 + 1] != ',')
+ break;
+ i = i2 + 2;
+ }
+ return new NpgsqlPolygon(points);
+ }
+ static readonly Regex NpgsqlCircleRegex = new Regex(@"<\((-?\d+.?\d*),(-?\d+.?\d*)\),(\d+.?\d*)>");
+ static NpgsqlCircle NpgsqlCircleParse(string s)
+ {
+ var m = NpgsqlCircleRegex.Match(s);
+ if (!m.Success)
+ throw new FormatException("Not a valid circle: " + s);
+
+ return new NpgsqlCircle(
+ double.Parse(m.Groups[1].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[2].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat),
+ double.Parse(m.Groups[3].ToString(), NumberStyles.Any, CultureInfo.InvariantCulture.NumberFormat)
+ );
+ }
+
private object YieldJToken(Type ctype, JToken jt, int rank)
{
if (jt.Type == JTokenType.Null) return null;
@@ -65,13 +160,13 @@ namespace Newtonsoft.Json
var ctypeGenericType1 = ctype.GenericTypeArguments.FirstOrDefault();//ctype.Namespace == "System" && ctype.Name.StartsWith("Nullable`") ? ctype.GenericTypeArguments.FirstOrDefault() : null;
if (ctype == typeof_BitArray) return jt.ToString().ToBitArray();
- if (ctype == typeof_NpgsqlPoint || ctypeGenericType1 == typeof_NpgsqlPoint) return NpgsqlPoint.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlLine || ctypeGenericType1 == typeof_NpgsqlLine) return NpgsqlLine.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlLSeg || ctypeGenericType1 == typeof_NpgsqlLSeg) return NpgsqlLSeg.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlBox || ctypeGenericType1 == typeof_NpgsqlBox) return NpgsqlBox.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlPath || ctypeGenericType1 == typeof_NpgsqlPath) return NpgsqlPath.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlPolygon || ctypeGenericType1 == typeof_NpgsqlPolygon) return NpgsqlPolygon.Parse(jt.ToString());
- if (ctype == typeof_NpgsqlCircle || ctypeGenericType1 == typeof_NpgsqlCircle) return NpgsqlCircle.Parse(jt.ToString());
+ if (ctype == typeof_NpgsqlPoint || ctypeGenericType1 == typeof_NpgsqlPoint) return NpgsqlPointParse(jt.ToString());
+ if (ctype == typeof_NpgsqlLine || ctypeGenericType1 == typeof_NpgsqlLine) return NpgsqlLineParse(jt.ToString());
+ if (ctype == typeof_NpgsqlLSeg || ctypeGenericType1 == typeof_NpgsqlLSeg) return NpgsqlLSegParse(jt.ToString());
+ if (ctype == typeof_NpgsqlBox || ctypeGenericType1 == typeof_NpgsqlBox) return NpgsqlBoxParse(jt.ToString());
+ if (ctype == typeof_NpgsqlPath || ctypeGenericType1 == typeof_NpgsqlPath) return NpgsqlPathParse(jt.ToString());
+ if (ctype == typeof_NpgsqlPolygon || ctypeGenericType1 == typeof_NpgsqlPolygon) return NpgsqlPolygonParse(jt.ToString());
+ if (ctype == typeof_NpgsqlCircle || ctypeGenericType1 == typeof_NpgsqlCircle) return NpgsqlCircleParse(jt.ToString());
if (ctype == typeof_Cidr || ctypeGenericType1 == typeof_Cidr)
{
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesExtensions.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesExtensions.cs
index d3796ea24..0ca73db0e 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesExtensions.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLTypesExtensions.cs
@@ -35,7 +35,7 @@ public static partial class PostgreSQLTypesExtensions
double radLng2 = (double)(point.X) * Math.PI / 180d;
return 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin((radLat1 - radLat2) / 2), 2) + Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin((radLng1 - radLng2) / 2), 2))) * 6378137;
}
-
+
public static NpgsqlRange ToNpgsqlRange(this string that)
{
var s = that;
diff --git a/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj b/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj
index 3fa8114bb..468264718 100644
--- a/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj
+++ b/Providers/FreeSql.Provider.QuestDb/FreeSql.Provider.QuestDb.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj
index 4d98e7a0f..cbc25cfa1 100644
--- a/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj
+++ b/Providers/FreeSql.Provider.ShenTong/FreeSql.Provider.ShenTong.csproj
@@ -15,7 +15,7 @@
$(AssemblyName)
true
true
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj
index 3c4130b6f..af9f909c7 100644
--- a/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj
+++ b/Providers/FreeSql.Provider.SqlServer/FreeSql.Provider.SqlServer.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0;net451;net45;net40
+ net9.0;net8.0;net7.0;net6.0;netstandard2.1;netstandard2.0;net451;net45;net40
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next
@@ -18,7 +18,7 @@
true
false
key.snk
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -30,21 +30,21 @@
-
-
+
+
-
+
microsoft
net40
-
+
net60;microsoft
diff --git a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj
index 731901075..48509e2e6 100644
--- a/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj
+++ b/Providers/FreeSql.Provider.SqlServerForSystem/FreeSql.Provider.SqlServerForSystem.csproj
@@ -1,7 +1,7 @@
- net8.0;net7.0;net6.0;netstandard2.0;net451;net45;net40
+ net9.0;net8.0;net7.0;net6.0;netstandard2.1;netstandard2.0;net451;net45;net40
true
FreeSql;ncc;YeXiangQin
FreeSql 数据库实现,基于 System.Data.SqlClient + SqlServer 2005+,并根据版本适配分页方法:row_number 或 offset fetch next
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
@@ -42,7 +42,7 @@
net40
-
+
net60
diff --git a/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj b/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj
index bd86071be..14652bdc9 100644
--- a/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj
+++ b/Providers/FreeSql.Provider.Sqlite/FreeSql.Provider.Sqlite.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj b/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj
index a9f4cd1e6..687e0d59e 100644
--- a/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj
+++ b/Providers/FreeSql.Provider.SqliteCore/FreeSql.Provider.SqliteCore.csproj
@@ -18,7 +18,7 @@
true
key.snk
false
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md
diff --git a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj
index aafabf6b2..91a23d754 100644
--- a/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj
+++ b/Providers/FreeSql.Provider.Xugu/FreeSql.Provider.Xugu.csproj
@@ -15,7 +15,7 @@
$(AssemblyName)
true
true
- 3.5.100-preview20241113
+ 3.5.100-preview20241123
readme.md