NewLife/X

构建Insert语句时,如果非空字段类型是DateTime,没有数据也不要参与构建,数据库可能设置有默认值,即使没有默认值,就让它报错好了。
大石头 authored at 2022-03-12 09:37:07
ac03f1a
Tree
1 Parent(s) 4102f78
Summary: 4 changed files with 5 additions and 1 deletions.
Modified +0 -0
Modified +0 -0
Modified +1 -1
Modified +4 -0
Modified +0 -0
diff --git a/Doc/XCode.emmx b/Doc/XCode.emmx
index 68c41ea..a1bd26c 100644
Binary files a/Doc/XCode.emmx and b/Doc/XCode.emmx differ
Modified +0 -0
diff --git "a/Doc/\346\217\222\345\205\245\345\255\227\346\256\265\351\200\273\350\276\221.png" "b/Doc/\346\217\222\345\205\245\345\255\227\346\256\265\351\200\273\350\276\221.png"
index c842f87..22cf5e8 100644
Binary files "a/Doc/\346\217\222\345\205\245\345\255\227\346\256\265\351\200\273\350\276\221.png" and "b/Doc/\346\217\222\345\205\245\345\255\227\346\256\265\351\200\273\350\276\221.png" differ
Modified +1 -1
diff --git a/XCode/Entity/EntityExtension.cs b/XCode/Entity/EntityExtension.cs
index a8b1a51..ae9d3eb 100644
--- a/XCode/Entity/EntityExtension.cs
+++ b/XCode/Entity/EntityExtension.cs
@@ -767,7 +767,7 @@ namespace XCode
                 foreach (var fi in fact.Fields)
                 {
                     // 脏数据,或者非空非string
-                    if (entity.Dirtys[fi.Name] || !fi.IsNullable && fi.Type != typeof(String))
+                    if (entity.Dirtys[fi.Name] || !fi.IsNullable && fi.Type != typeof(String) && fi.Type != typeof(DateTime))
                     {
                         if (!ns.Contains(fi.Name)) ns.Add(fi.Name);
                     }
Modified +4 -0
diff --git a/XCode/Entity/IEntityPersistence.cs b/XCode/Entity/IEntityPersistence.cs
index 69b3fee..e5796d0 100644
--- a/XCode/Entity/IEntityPersistence.cs
+++ b/XCode/Entity/IEntityPersistence.cs
@@ -534,6 +534,10 @@ namespace XCode
 
                             value = String.Empty;
                         }
+                        if (fi.Type == typeof(DateTime))
+                        {
+                            if (!factory.FullInsert) continue;
+                        }
 
                         // 4,没有脏数据,不允许空,其它类型参与插入
                     }