From 152d41025bee9caf15c8bc68e7357e5517fe13dc Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Wed, 20 Nov 2019 18:22:05 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20IsNulable=20=E7=89=B9?= =?UTF-8?q?=E6=80=A7=E4=B8=8D=E7=94=9F=E6=95=88=E7=9A=84=20bug=EF=BC=9B=20?= =?UTF-8?q?#137?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/UnitTest2.cs | 18 ++++++++++++++++++ FreeSql/Internal/UtilsExpressionTree.cs | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs index 431e8818..7cc880b5 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest2.cs @@ -165,9 +165,27 @@ namespace FreeSql.Tests public long? CreateUserId { get; set; } } + public class TestMySqlStringIsNullable + { + public Guid id { get; set; } + public string varchar { get; set; } + [Column(IsNullable = true)] + public string varchar_null { get; set; } + [Column(IsNullable = false)] + public string varchar_notnull { get; set; } + } + [Fact] public void Test02() { + g.mysql.Select(); + + var slsksd = g.mysql.Update().SetSource(new UserLike { Id = Guid.NewGuid(), CreateUserId = 1000, SubjectId = Guid.NewGuid() }) + .UpdateColumns(a => new + { + a.SubjectId + }).NoneParameter().ToSql(); + g.mysql.Aop.ParseExpression = (s, e) => { if (e.Expression.NodeType == ExpressionType.Call) diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs index 271c3ac9..cecb8816 100644 --- a/FreeSql/Internal/UtilsExpressionTree.cs +++ b/FreeSql/Internal/UtilsExpressionTree.cs @@ -114,7 +114,7 @@ namespace FreeSql.Internal else colattr.DbType = colattr.DbType.ToUpper(); - if (tp != null && tp.Value.isnullable == null) colattr.IsNullable = tp.Value.dbtypeFull.Contains("NOT NULL") == false; + if (colattr._IsNullable == null && tp != null && tp.Value.isnullable == null) colattr.IsNullable = tp.Value.dbtypeFull.Contains("NOT NULL") == false; if (colattr.DbType?.Contains("NOT NULL") == true) colattr.IsNullable = false; if (string.IsNullOrEmpty(colattr.Name)) colattr.Name = p.Name; if (common.CodeFirst.IsSyncStructureToLower) colattr.Name = colattr.Name.ToLower();