构建Insert语句时,如果非空字段类型是DateTime,没有数据也不要参与构建,数据库可能设置有默认值,即使没有默认值,就让它报错好了。大石头 authored at 2022-03-12 09:37:07
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
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
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);
}
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,没有脏数据,不允许空,其它类型参与插入
}