diff --git a/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs b/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs
new file mode 100644
index 0000000..d9074c1
--- /dev/null
+++ b/Falcon.SugarApi.Test/IGetDataTimeNowTest.cs
@@ -0,0 +1,41 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+
+namespace Falcon.SugarApi.Test
+{
+ [TestClass]
+ public class IGetDataTimeNowTest
+ {
+ [TestMethod]
+ public void nowTest() {
+ var year = DateTime.Now.Year;
+ Console.WriteLine($"base year {year}");
+ var ic1 = new c1();
+ Console.WriteLine($"c1 year {ic1.now.Year}");
+ var ic2 = new c2();
+ Console.WriteLine($"c2 year {ic2.now.Year}");
+ var ic3 = new c3();
+ Console.WriteLine($"c3 year {ic3.now.Year}");
+ Assert.IsTrue(ic1.now.Year == year);
+ Assert.IsTrue(ic3.now.Year == year);
+ Assert.IsTrue(ic2.now.Year == year + 1);
+ }
+ }
+
+ public class c1
+ {
+ public c1() {
+ this.now = this is IGetDataTimeNow gdn ? gdn.GetDataTimeNow() : DateTime.Now;
+ }
+ public DateTime now { get; set; }
+ }
+
+ public class c2:c1, IGetDataTimeNow
+ {
+ public DateTime GetDataTimeNow() {
+ return DateTime.Now.AddYears(1);
+ }
+ }
+
+ public class c3:c1 { }
+}
diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs
index da337c3..2d843fc 100644
--- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs
+++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable.cs
@@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions
///
public abstract class SugarBasicTable:EntityGuidId
{
+ ///
+ /// 构造数据表基类
+ ///
+ public SugarBasicTable() {
+ this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now;
+ }
///
/// 创建时间
///
@@ -24,7 +30,7 @@ namespace Falcon.SugarApi.DatabaseDefinitions
/// 本条数据
public virtual SugarBasicTable SetNew(DateTime? now = null) {
this.Id = Guid.NewGuid();
- this.CreateTime = now ?? DateTime.Now;
+ this.CreateTime = now ?? (this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now);
return this;
}
}
diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs
index e6402f1..1b7accc 100644
--- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs
+++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable2.cs
@@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions
///
public abstract class SugarBasicTable2:EntityStringId
{
+ ///
+ /// 构造数据表基类
+ ///
+ public SugarBasicTable2() {
+ this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now;
+ }
///
/// 创建时间
///
diff --git a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs
index 19c85c4..02438c9 100644
--- a/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs
+++ b/Falcon.SugarApi/DatabaseDefinitions/SugarBasicTable3.cs
@@ -9,6 +9,12 @@ namespace Falcon.SugarApi.DatabaseDefinitions
///
public abstract class SugarBasicTable3:EntityStringId
{
+ ///
+ /// 构造数据表基类
+ ///
+ public SugarBasicTable3() {
+ this.CreateTime = this is IGetDataTimeNow gtn ? gtn.GetDataTimeNow() : DateTime.Now;
+ }
///
/// 记录状态
///
@@ -18,6 +24,6 @@ namespace Falcon.SugarApi.DatabaseDefinitions
/// 创建时间
///
[Required, SugarColumn(ColumnDescription = "创建时间")]
- public DateTime CreateTime { get; set; } = DateTime.Now;
+ public DateTime CreateTime { get; set; }
}
}
diff --git a/Falcon.SugarApi/IGetDataTimeNow.cs b/Falcon.SugarApi/IGetDataTimeNow.cs
new file mode 100644
index 0000000..f9eb305
--- /dev/null
+++ b/Falcon.SugarApi/IGetDataTimeNow.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace Falcon.SugarApi
+{
+ ///
+ /// 获取当前时间接口
+ ///
+ public interface IGetDataTimeNow
+ {
+ ///
+ /// 获取当前时间
+ ///
+ ///
+ DateTime GetDataTimeNow();
+ }
+}