日期创建一个具体的例子我很感兴趣 - 但也有落入相同类别的数据的其他位:这你要捕捉任何含糊重要的实体数据

其中最好做到这一点:?业务逻辑(BL)或数据访问层(DAL)

到现在为止我已经依靠SQL Server的getdate()来填充我创建了插入到表中的日期,但我现在开始怀疑我是否应该这样做更多的BL。

仅供参考 - 这主要是一直在您创建的BL对象基于Web的系统(根据用户输入),并在DAL火它关闭 - 这不是像我一直想参考对象存储器的年龄(所以具有用于在创建对象在BL使用对象上的“创建日期”属性还没有一个问题)。

也许还有第三种选择 - 它(在这两个位置一次)发生在我读Marr75的答案后记录两次可能是在一些senarios有用。你会得到的数据层consisent日期/时间的好处,但你仍然有BL驱动的价值指以及 - 我想我会取决于你的使用情况。此选项也不是没有一定的危险性,但 - 。人们可能会开始使用了错误的日期错误的东西。

有帮助吗?

解决方案

我会说:是的,

也许进入设置在BL的创建和上次访问日期的习惯。然后在你的DAL,永远是检查在这些领域的空值。如果他们是空,考虑你的选择:抛出一个异常,或者只是在该层的值填写。种类全部捕捉之前插入/更新的。

我已经为你在你的问题描述了同样的模式。当时我面临着具有应用程序中使用/消耗UTC时间戳,而我想我只是移动这一行为的BL和/或DL类。是的,我也用过GETUTCDATE(),但它只是感觉比较合适的有在BL / DL这个逻辑。

其他提示

我投给总是DAL。依托日期和时间,超出了数据库层已经在过去的错误给我的一个来源。在大多数的设置,你就更有可能保证一致的日期和时间,你的数据库。时间同步问题的客户端 - 服务器和服务器连 - 服务器导致讨厌的,很难复制,很难解决问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top