gpt4 book ai didi

.net - 写入数据库时​​使用 DateTime.Now 时的 Incercept

转载 作者:行者123 更新时间:2023-12-02 00:32:22 25 4
gpt4 key购买 nike

well known在数据库中,您应该以通用时间坐标存储日期。

我正在寻找一种方法来了解开发人员在写入数据库时​​何时滥用 DateTime.Now。

我们使用的是带有 EF4 或 nHibernate 3.0 的 Sql Server 2008。

当日期时间包含低级别的时区信息时,是否可以拦截它的值,例如在 Sql Server 或 NH/EF 中?

最佳答案

您可以添加以下事件监听器:

public class DateTimeEventListener : IPreUpdateEventListener,
IPreInsertEventListener
{
public bool OnPreUpdate(PreUpdateEvent e)
{
foreach (var value in e.State)
if (value is DateTime && ((DateTime)value).Kind != DateTimeKind.Utc)
throw new Exception("Non-UTC DateTime used");
}

public bool OnPreInsert(PreInsertEvent e)
{ /*Same as OnPreUpdate*/ }
}

(这完全未经测试,可能会因从数据库中检索到的值而失败。用作起始点)

关于.net - 写入数据库时​​使用 DateTime.Now 时的 Incercept,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6230830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com