- 修复 IsNulable 特性不生效的 bug; #137

This commit is contained in:
28810 2019-11-20 18:22:05 +08:00
parent 9f97d67cb2
commit 152d41025b
2 changed files with 19 additions and 1 deletions

View File

@ -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<TestMySqlStringIsNullable>();
var slsksd = g.mysql.Update<UserLike>().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)

View File

@ -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();