From dbc323a22c2240d4dce9515bff6ac30483fafadd Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Fri, 27 Mar 2020 17:35:59 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20CodeFirst=20IsNullable?= =?UTF-8?q?=20=E8=BF=81=E7=A7=BB=E8=84=9A=E6=9C=AC=E9=87=8D=E5=A4=8D=20NOT?= =?UTF-8?q?=20NULL=20=E8=AF=AD=E6=B3=95=E9=94=99=E8=AF=AF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MySqlConnector/MySqlCodeFirstTest.cs | 3 +++ .../FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs | 3 +++ .../FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs | 3 +++ .../FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs | 3 +++ .../PostgreSQL/PostgreSQLCodeFirstTest.cs | 3 +++ .../SqlServer/SqlServerCodeFirstTest.cs | 3 +++ FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs | 3 +++ FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs | 3 +++ FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs | 3 +++ .../FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs | 3 +++ .../FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs | 3 +++ FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs | 3 +++ FreeSql/Internal/UtilsExpressionTree.cs | 2 +- 13 files changed, 37 insertions(+), 1 deletion(-) diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs index 329b4e61..a00a399b 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.MySqlConnector/MySqlConnector/MySqlCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.MySqlConnector public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs index 44718c65..98e1eeea 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/DamengCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.Odbc.Dameng public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs index d0657318..ebc6c398 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.Odbc.MySql public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs index 37482571..ef9c6147 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/OracleCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.Odbc.Oracle public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs index 320146c0..179a66d8 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -25,6 +25,9 @@ namespace FreeSql.Tests.Odbc.PostgreSQL public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs index ef642d6b..1eb1d44a 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/SqlServerCodeFirstTest.cs @@ -23,6 +23,9 @@ namespace FreeSql.Tests.Odbc.SqlServer public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs index ceeca39b..826cb13b 100644 --- a/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MsAccess/MsAccessCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.MsAccess public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs index 1c3cd9ed..b3ccdd26 100644 --- a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.MySql public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs index 959a9b96..8e7d09c8 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.Oracle public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs index f131c212..700f2d6d 100644 --- a/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/PostgreSQL/PostgreSQLCodeFirstTest.cs @@ -28,6 +28,9 @@ namespace FreeSql.Tests.PostgreSQL public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs index f3e55e01..368eddf8 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs @@ -22,6 +22,9 @@ namespace FreeSql.Tests.SqlServer public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs index 12073a43..03b30986 100644 --- a/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Sqlite/SqliteCodeFirstTest.cs @@ -21,6 +21,9 @@ namespace FreeSql.Tests.Sqlite public Guid Id { get; set; } [Column(StringLength = 50)] public string Title { get; set; } + + [Column(IsNullable = false, StringLength = 50)] + public string TitleSub { get; set; } } [Fact] diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index ffb1dfb8..efdb4a8a 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -124,7 +124,7 @@ namespace FreeSql.Internal if ((colattr.IsNullable != true || colattr.IsIdentity == true || colattr.IsPrimary == true) && colattr.DbType.Contains("NOT NULL") == false) { colattr.IsNullable = false; - colattr.DbType += " NOT NULL"; + colattr.DbType = Regex.Replace(colattr.DbType, @"\bNULL\b", "").Trim() + " NOT NULL"; } if (colattr.IsNullable == true && colattr.DbType.Contains("NOT NULL")) colattr.DbType = colattr.DbType.Replace("NOT NULL", ""); colattr.DbType = Regex.Replace(colattr.DbType, @"\([^\)]+\)", m =>