diff --git a/Home.md b/Home.md index 0436612..0c960fa 100644 --- a/Home.md +++ b/Home.md @@ -10,7 +10,7 @@ FreeSql是一个功能强大的NETStandard库,用于对象关系映射程序(O - [x] 支持导航属性查询,和延时加载; - [x] 支持同步/异步数据库操作方法,丰富多彩的链式查询方法; - [x] 支持读写分离、分表分库,租户设计; -- [x] 支持多种数据库,MySql/SqlServer/PostgreSQL/Oracle/Sqlite; +- [x] 支持多种数据库,MySql/SqlServer/PostgreSQL/Oracle/Sqlite/达梦; * [FreeSql入门](https://github.com/2881099/FreeSql/wiki/FreeSql%e5%85%a5%e9%97%a8) * [安装](https://github.com/2881099/FreeSql/wiki/%e5%ae%89%e8%a3%85) diff --git a/Repository.md b/Repository.md index b5cff7c..b47be65 100644 --- a/Repository.md +++ b/Repository.md @@ -99,7 +99,7 @@ var logRepository = fsql.GetGuidRepository(null, oldname => $"{oldname}_{Da ## 兼容问题 -FreeSql 支持五种数据库,分别为 MySql/SqlServer/PostgreSQL/Oracle/Sqlite,虽然他们都为关系型数据库,但各自有着独特的技术亮点,有许多亮点值得我们使用; +FreeSql 支持五种数据库,分别为 MySql/SqlServer/PostgreSQL/Oracle/Sqlite/达梦,虽然他们都为关系型数据库,但各自有着独特的技术亮点,有许多亮点值得我们使用; 比如 SqlServer 提供的 output inserted 特性,在表使用了自增或数据库定义了默认值的时候,使用它可以快速将 insert 的数据返回。PostgreSQL 也有相应的功能,如此方便却不是每个数据库都支持。 diff --git a/更新日志.md b/更新日志.md index 92a8ef0..24db4e4 100644 --- a/更新日志.md +++ b/更新日志.md @@ -1,6 +1,13 @@ 完整版本:年数-月-日-当日版本号,FreeSql、FreeSql.Repository、FreeSql.DbContext 版本号相同。 +## v0.12.13 + +- 增加 达梦数据库 ODBC 适配,和单元测试,支持 CodeFirst 模式开发; +- 修复 Sqlite attachs 附加数据库别名 bug; +- 增加 BaseEntity 物理删除方法 Delete(true); +- 整理 读写分离的查询代码; + ## v0.12.12 - 修复 DbContext TrackList 对匿名对象处理的 bug;[#150](https://github.com/2881099/FreeSql/issues/150) diff --git a/类型映射.md b/类型映射.md index 128fd41..2edcfc1 100644 --- a/类型映射.md +++ b/类型映射.md @@ -51,62 +51,62 @@ public class S_SysConfig ## 默认类型映射 -| csharp | MySql | SqlServer | PostgreSQL | Oracle | Sqlite | -| - | - | - | - | - | - | -| bool \| bool? | bit(1) | bit | bool | number(1) | boolean | -| sbyte \| sbyte? | tinyint(3) | smallint | int2 | number(4) | smallint | -| short \| short? | smallint(6) | smallint | int2 | number(6) | smallint | -| int \| int? | int(11) | int | int4 | number(11) | integer | -| long \| long? | bigint(20) | bigint | int8 | number(21) | integer | -| byte \| byte? | tinyint(3) unsigned | tinyint | int2 | number(3) | int2 | -| ushort \| ushort? | smallint(5) unsigned | int | int4 | number(5) | unsigned | -| uint \| uint? | int(10) unsigned | bigint | int8 | number(10) | decimal(10,0) | -| ulong \| ulong? | bigint(20) unsigned | decimal(20,0) | numeric(20,0) | number(20) | decimal(21,0) | -| double \| double? | double | float | float8 | float(126) | double | -| float \| float? | float | real | float4 | float(63) | float | -| decimal \| decimal? | decimal(10,2) | decimal(10,2) | numeric(10,2) | number(10,2) | decimal(10,2) | -| Guid \| Guid? | char(36) | uniqueidentifier | uuid | char(36 CHAR) | character(36) | -| TimeSpan \| TimeSpan? | time | time | time | interval day(2) to second(6) | bigint | -| DateTime \| DateTime? | datetime | datetime | timestamp | timestamp(6) | datetime | -| DateTimeOffset \| DateTimeOffset? | - | datetimeoffset | - | timestamp(6) with local time zone | - | -| Enum \| Enum? | enum | int | int4 | number(16) | mediumint | -| FlagsEnum \| FlagsEnum? | set | bigint | int8 | number(32) | bigint | -| byte[] | varbinary(255) | varbinary(255) | bytea | blob | blob | -| string | varchar(255) | nvarchar(255) | varchar(255) | nvarchar2(255) | nvarchar(255) | -| MygisPoint | point | - | - | - | - | -| MygisLineString | linestring | - | - | - | - | -| MygisPolygon | polygon | - | - | - | - | -| MygisMultiPoint | multipoint | - | - | - | - | -| MygisMultiLineString | multilinestring | - | - | - | - | -| MygisMultiPolygon | multipolygon | - | - | - | - | -| BitArray | - | - | varbit(64) | - | - | -| NpgsqlPoint \| NpgsqlPoint? | - | - | point | - | - | -| NpgsqlLine \| NpgsqlLine? | - | - | line | - | - | -| NpgsqlLSeg \| NpgsqlLSeg? | - | - | lseg | - | - | -| NpgsqlBox \| NpgsqlBox? | - | - | box | - | - | -| NpgsqlPath \| NpgsqlPath? | - | - | path | - | - | -| NpgsqlPolygon \| NpgsqlPolygon? | - | - | polygon | - | - | -| NpgsqlCircle \| NpgsqlCircle? | - | - | circle | - | - | -| (IPAddress Address, int Subnet) \| (IPAddress Address, int Subnet)? | - | - | cidr | - | - | -| IPAddress | - | - | inet | - | - | -| PhysicalAddress | - | - | macaddr | - | - | -| NpgsqlRange\ \| NpgsqlRange\? | - | - | int4range | - | - | -| NpgsqlRange\ \| NpgsqlRange\? | - | - | int8range | - | - | -| NpgsqlRange\ \| NpgsqlRange\? | - | - | numrange | - | - | -| NpgsqlRange\ \| NpgsqlRange\? | - | - | tsrange | - | - | -| PostgisPoint | - | - | geometry | - | - | -| PostgisLineString | - | - | geometry | - | - | -| PostgisPolygon | - | - | geometry | - | - | -| PostgisMultiPoint | - | - | geometry | - | - | -| PostgisMultiLineString | - | - | geometry | - | - | -| PostgisMultiPolygon | - | - | geometry | - | - | -| PostgisGeometry | - | - | geometry | - | - | -| PostgisGeometryCollection | - | - | geometry | - | - | -| Dictionary\ | - | - | hstore | - | - | -| JToken | - | - | jsonb | - | - | -| JObject | - | - | jsonb | - | - | -| JArray | - | - | jsonb | - | - | -| 数组 | - | - | 以上所有类型都支持 | - | - | +| csharp | MySql | SqlServer | PostgreSQL | Oracle | Sqlite | 达梦 | +| - | - | - | - | - | - | - | +| bool \| bool? | bit(1) | bit | bool | number(1) | boolean | number(1) | +| sbyte \| sbyte? | tinyint(3) | smallint | int2 | number(4) | smallint | number(4) | +| short \| short? | smallint(6) | smallint | int2 | number(6) | smallint | number(6) | +| int \| int? | int(11) | int | int4 | number(11) | integer | number(11) | +| long \| long? | bigint(20) | bigint | int8 | number(21) | integer | number(21) | +| byte \| byte? | tinyint(3) unsigned | tinyint | int2 | number(3) | int2 | number(3) | +| ushort \| ushort? | smallint(5) unsigned | int | int4 | number(5) | unsigned | number(5) | +| uint \| uint? | int(10) unsigned | bigint | int8 | number(10) | decimal(10,0) | number(10) | +| ulong \| ulong? | bigint(20) unsigned | decimal(20,0) | numeric(20,0) | number(20) | decimal(21,0) | number(20) | +| double \| double? | double | float | float8 | float(126) | double | double | +| float \| float? | float | real | float4 | float(63) | float | real | +| decimal \| decimal? | decimal(10,2) | decimal(10,2) | numeric(10,2) | number(10,2) | decimal(10,2) | number(10,2) | +| Guid \| Guid? | char(36) | uniqueidentifier | uuid | char(36 CHAR) | character(36) | char(36) | +| TimeSpan \| TimeSpan? | time | time | time | interval day(2) to second(6) | bigint | - | +| DateTime \| DateTime? | datetime | datetime | timestamp | timestamp(6) | datetime | timestamp(6) | +| DateTimeOffset \| DateTimeOffset? | - | datetimeoffset | - | timestamp(6) with local time zone | - | timestamp(6) | +| Enum \| Enum? | enum | int | int4 | number(16) | mediumint | number(16) | +| FlagsEnum \| FlagsEnum? | set | bigint | int8 | number(32) | bigint | number(32) | +| byte[] | varbinary(255) | varbinary(255) | bytea | blob | blob | blob | +| string | varchar(255) | nvarchar(255) | varchar(255) | nvarchar2(255) | nvarchar(255) | nvarchar2(255) | +| MygisPoint | point | - | - | - | - | - | +| MygisLineString | linestring | - | - | - | - | - | +| MygisPolygon | polygon | - | - | - | - | - | +| MygisMultiPoint | multipoint | - | - | - | - | - | +| MygisMultiLineString | multilinestring | - | - | - | - | - | +| MygisMultiPolygon | multipolygon | - | - | - | - | - | +| BitArray | - | - | varbit(64) | - | - | - | +| NpgsqlPoint \| NpgsqlPoint? | - | - | point | - | - | - | +| NpgsqlLine \| NpgsqlLine? | - | - | line | - | - | - | +| NpgsqlLSeg \| NpgsqlLSeg? | - | - | lseg | - | - | - | +| NpgsqlBox \| NpgsqlBox? | - | - | box | - | - | - | +| NpgsqlPath \| NpgsqlPath? | - | - | path | - | - | - | +| NpgsqlPolygon \| NpgsqlPolygon? | - | - | polygon | - | - | - | +| NpgsqlCircle \| NpgsqlCircle? | - | - | circle | - | - | - | +| (IPAddress Address, int Subnet) \| (IPAddress Address, int Subnet)? | - | - | cidr | - | - | - | +| IPAddress | - | - | inet | - | - | - | +| PhysicalAddress | - | - | macaddr | - | - | - | +| NpgsqlRange\ \| NpgsqlRange\? | - | - | int4range | - | - | - | +| NpgsqlRange\ \| NpgsqlRange\? | - | - | int8range | - | - | - | +| NpgsqlRange\ \| NpgsqlRange\? | - | - | numrange | - | - | - | +| NpgsqlRange\ \| NpgsqlRange\? | - | - | tsrange | - | - | - | +| PostgisPoint | - | - | geometry | - | - | - | +| PostgisLineString | - | - | geometry | - | - | - | +| PostgisPolygon | - | - | geometry | - | - | - | +| PostgisMultiPoint | - | - | geometry | - | - | - | +| PostgisMultiLineString | - | - | geometry | - | - | - | +| PostgisMultiPolygon | - | - | geometry | - | - | - | +| PostgisGeometry | - | - | geometry | - | - | - | +| PostgisGeometryCollection | - | - | geometry | - | - | - | +| Dictionary\ | - | - | hstore | - | - | - | +| JToken | - | - | jsonb | - | - | - | +| JObject | - | - | jsonb | - | - | - | +| JArray | - | - | jsonb | - | - | - | +| 数组 | - | - | 以上所有类型都支持 | - | - | - | > 以上类型和长度是默认值,可手工设置,如 string 属性可指定 [Column(DbType = "varchar(max)")] 或者 [MaxLength(-1)]