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: