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: