mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-06 16:30:52 +08:00
update
21
实体特性.md
21
实体特性.md
@@ -89,12 +89,31 @@ class Topic {
|
||||
}
|
||||
```
|
||||
|
||||
使用数据库时间执行插入数据,注意:
|
||||
v0.12.4 使用数据库时间执行插入数据,注意:
|
||||
|
||||
1、一但设置了这个特性,插入的时候设置属性值是无效的;
|
||||
|
||||
2、插入实体执行成功后,实体的值还是 c# 时间;
|
||||
|
||||
如果对时间精度要求不高,推荐下面的做法,先计算本地与服务器时间差距,再使用 Aop 统一处理:
|
||||
|
||||
```csharp
|
||||
var serverTime = fsql.Select<T>().Limit(1).First(a => DateTime.UtcNow});
|
||||
var timeOffset = DateTime.UtcNow.Subtract(serverTime); //减去数据库时间
|
||||
|
||||
fsql.Aop.AuditValue += new EventHandler<Aop.AuditValueEventArgs>((_, e) =>
|
||||
{
|
||||
if (e.Column.Attribute.MapType.NullableTypeOrThis() == typeof(DateTime))
|
||||
{
|
||||
if (e.Value == null || (DateTime)e.Value == default(DateTime))
|
||||
{
|
||||
e.Value = DateTime.Now.Subtract(timeOffset); //使用本地时区保存
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## 可空(Nullable)
|
||||
|
||||
```csharp
|
||||
|
||||
Reference in New Issue
Block a user