From 6fbdbe3327fbd58e8bfd1bb22d01e7a1eb3d5683 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Fri, 27 Mar 2020 16:51:28 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E6=94=B9=20StringLength/MaxLength?= =?UTF-8?q?=20=E5=AF=B9=20Oracle=20varchar2=20=E7=B1=BB=E5=9E=8B=E6=97=A0?= =?UTF-8?q?=E6=95=88=E7=9A=84=20bug=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 7 ------- .../MySqlConnector/MySqlCodeFirstTest.cs | 13 +++++++++++++ .../Dameng/DamengCodeFirstTest.cs | 12 ++++++++++++ .../Default/OdbcCodeFirstTest.cs | 1 + .../MySql/MySqlCodeFirstTest.cs | 13 +++++++++++++ .../Oracle/OracleCodeFirstTest.cs | 12 ++++++++++++ .../PostgreSQL/PostgreSQLCodeFirstTest.cs | 12 ++++++++++++ .../SqlServer/SqlServerCodeFirstTest.cs | 13 +++++++++++++ .../FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs | 12 ++++++++++++ .../FreeSql.Tests/MySql/MySqlCodeFirstTest.cs | 12 ++++++++++++ .../FreeSql.Tests/Oracle/OracleCodeFirstTest.cs | 12 ++++++++++++ .../PostgreSQL/PostgreSQLCodeFirstTest.cs | 12 ++++++++++++ .../SqlServer/SqlServerCodeFirstTest.cs | 12 ++++++++++++ .../FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs | 12 ++++++++++++ FreeSql/Internal/UtilsExpressionTree.cs | 2 +- 15 files changed, 149 insertions(+), 8 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index d8bba58b..28fdb213 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -110,13 +110,6 @@ 清空状态数据 - - - 根据 lambda 条件删除数据 - - - - 添加 diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs index 86460dce..329b4e61 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs @@ -10,6 +10,19 @@ namespace FreeSql.Tests.MySqlConnector { public class MySqlCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.mysql.CodeFirst.GetComparisonDDLStatements(); + g.mysql.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } + [Fact] public void е() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs index b5ba4461..44718c65 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.Odbc.Dameng { public class DamengCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.dameng.CodeFirst.GetComparisonDDLStatements(); + g.dameng.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs index e04d5d40..1859e308 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Default/OdbcCodeFirstTest.cs @@ -11,6 +11,7 @@ namespace FreeSql.Tests.Odbc.Default public class OdbcCodeFirstTest { + [Fact] public void 中文表_字段() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs index 6c52d3ae..d0657318 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs @@ -10,6 +10,19 @@ namespace FreeSql.Tests.Odbc.MySql { public class MySqlCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.mysql.CodeFirst.GetComparisonDDLStatements(); + g.mysql.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } + [Fact] public void е() { diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs index 2ae10e27..37482571 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.Odbc.Oracle { public class OracleCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.oracle.CodeFirst.GetComparisonDDLStatements(); + g.oracle.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs index 96a926fd..320146c0 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -14,6 +14,18 @@ namespace FreeSql.Tests.Odbc.PostgreSQL { public class PostgreSQLCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.pgsql.CodeFirst.GetComparisonDDLStatements(); + g.pgsql.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs index 355854b2..ef642d6b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs @@ -12,6 +12,19 @@ namespace FreeSql.Tests.Odbc.SqlServer [Collection("SqlServerCollection")] public class SqlServerCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); + g.sqlserver.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } + [Fact] public void ı_ֶ() { diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs index bd27dc0c..ceeca39b 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.MsAccess { public class MsAccessCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.msaccess.CodeFirst.GetComparisonDDLStatements(); + g.msaccess.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs index ad7efc27..1c3cd9ed 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.MySql { public class MySqlCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.mysql.CodeFirst.GetComparisonDDLStatements(); + g.mysql.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void е() diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs index f1eeab72..959a9b96 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.Oracle { public class OracleCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.oracle.CodeFirst.GetComparisonDDLStatements(); + g.oracle.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs index 75cd98d8..f131c212 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -17,6 +17,18 @@ namespace FreeSql.Tests.PostgreSQL { public class PostgreSQLCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.pgsql.CodeFirst.GetComparisonDDLStatements(); + g.pgsql.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs index b86c0e2f..f3e55e01 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs @@ -11,6 +11,18 @@ namespace FreeSql.Tests.SqlServer { public class SqlServerCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.sqlserver.CodeFirst.GetComparisonDDLStatements(); + g.sqlserver.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void ı_ֶ() diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs index 1d48cb21..12073a43 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs @@ -10,6 +10,18 @@ namespace FreeSql.Tests.Sqlite { public class SqliteCodeFirstTest { + [Fact] + public void StringLength() + { + var dll = g.sqlite.CodeFirst.GetComparisonDDLStatements(); + g.sqlite.CodeFirst.SyncStructure(); + } + class TS_SLTB + { + public Guid Id { get; set; } + [Column(StringLength = 50)] + public string Title { get; set; } + } [Fact] public void е() diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index d9dc1840..ffb1dfb8 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -204,7 +204,7 @@ namespace FreeSql.Internal if (colattr.MapType == typeof(string) && colattr.StringLength != 0) { int strlen = colattr.StringLength; - var charPatten = @"(CHAR|CHAR2|CHARACTER)\s*(\([^\)]*\))?"; + var charPatten = @"(CHARACTER|CHAR2|CHAR)\s*(\([^\)]*\))?"; switch (common._orm.Ado.DataType) { case DataType.MySql: