From 0b1865f7e7da23aa887d81a994b827317f61b863 Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Mon, 3 Aug 2020 11:58:46 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20IsNullable=20=3D=20fal?=
=?UTF-8?q?se=20=E6=8F=92=E5=85=A5=E7=9A=84=E6=95=B0=E6=8D=AE=E5=80=BC?=
=?UTF-8?q?=E4=B8=BA=20null=20=E5=88=99=E4=BB=A5=E9=BB=98=E8=AE=A4?=
=?UTF-8?q?=E5=80=BC=E6=8F=92=E5=85=A5=EF=BC=88=E9=98=B2=E6=AD=A2DB?=
=?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=89=EF=BC=9B#384?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FreeSql.DbContext/FreeSql.DbContext.xml | 16 ----------------
FreeSql.Tests/FreeSql.Tests/UnitTest3.cs | 14 ++++++++++++++
.../Internal/CommonProvider/InsertProvider.cs | 2 +-
.../FreeSql.Provider.Dameng/Curd/DamengInsert.cs | 2 +-
.../Dameng/Curd/OdbcDamengInsert.cs | 2 +-
.../Oracle/Curd/OdbcOracleInsert.cs | 2 +-
.../FreeSql.Provider.Oracle/Curd/OracleInsert.cs | 2 +-
7 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index e76e3740..65c54b71 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -125,13 +125,6 @@
清空状态数据
-
-
- 根据 lambda 条件删除数据
-
-
-
-
添加
@@ -520,14 +513,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
index c8761dff..1f93eca1 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs
@@ -156,9 +156,23 @@ namespace FreeSql.Tests
}
}
+ class testInsertNullable
+ {
+ [Column(IsIdentity = true)]
+ public long Id { get; set; }
+
+ [Column(IsNullable = false)]
+ public string str1 { get; set; }
+ [Column(IsNullable = false)]
+ public int? int1 { get; set; }
+ }
+
[Fact]
public void Test03()
{
+ g.sqlite.Insert(new testInsertNullable()).NoneParameter().ExecuteAffrows();
+
+
var sqlxx = g.pgsql.InsertOrUpdate().SetSource(new userinfo { userid = 10 }).UpdateColumns(a => new { a.birthday, a.CardNo }).ToSql();
var aff1 = g.sqlite.GetRepository().Delete(10086);
diff --git a/FreeSql/Internal/CommonProvider/InsertProvider.cs b/FreeSql/Internal/CommonProvider/InsertProvider.cs
index 3abd94b2..6275a822 100644
--- a/FreeSql/Internal/CommonProvider/InsertProvider.cs
+++ b/FreeSql/Internal/CommonProvider/InsertProvider.cs
@@ -548,7 +548,7 @@ namespace FreeSql.Internal.CommonProvider
else
{
object val = col.GetMapValue(d);
- if (val == null && col.Attribute.IsNullable == false) val = Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
+ if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
if (_noneParameter)
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, col.Attribute.MapType, val));
else
diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs
index 643da775..2bee3fba 100644
--- a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs
+++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsert.cs
@@ -67,7 +67,7 @@ namespace FreeSql.Dameng.Curd
else
{
object val = col.GetMapValue(d);
- if (val == null && col.Attribute.IsNullable == false) val = Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
+ if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
if (_noneParameter)
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, col.Attribute.MapType, val));
else
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
index da81f57b..de1f043d 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsert.cs
@@ -67,7 +67,7 @@ namespace FreeSql.Odbc.Dameng
else
{
object val = col.GetMapValue(d);
- if (val == null && col.Attribute.IsNullable == false) val = Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
+ if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
if (_noneParameter)
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, col.Attribute.MapType, val));
else
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
index cb49ddf8..f4ea0596 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsert.cs
@@ -67,7 +67,7 @@ namespace FreeSql.Odbc.Oracle
else
{
object val = col.GetMapValue(d);
- if (val == null && col.Attribute.IsNullable == false) val = Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
+ if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
if (_noneParameter)
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, col.Attribute.MapType, val));
else
diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
index 98117dc5..371191d9 100644
--- a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
+++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsert.cs
@@ -69,7 +69,7 @@ namespace FreeSql.Oracle.Curd
else
{
object val = col.GetMapValue(d);
- if (val == null && col.Attribute.IsNullable == false) val = Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
+ if (val == null && col.Attribute.IsNullable == false) val = col.CsType == typeof(string) ? "" : Utils.GetDataReaderValue(col.CsType.NullableTypeOrThis(), null);//#384
if (_noneParameter)
sb.Append(_commonUtils.GetNoneParamaterSqlValue(specialParams, col.Attribute.MapType, val));
else