配置DateTime列以从db time更新

时间:2010-10-04 16:03:49

标签: .net linq-to-sql

是否可以将Linq配置为SQL以将列更新为getutcdate()(即从数据库服务器而不是Web服务器获取日期),或者是我唯一的选择?

我尝试在模型上设置Time Stamp属性,但这没有帮助。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为您需要使用触发器来更新时间。我处理它的方法是将LINQ设计器中的属性标记为readonly和server generated。我在更新时设置了一个触发器,以便在每次更新时修改列。对于创建日期,我执行相同的readonly / server生成并使用getdate()作为列默认值。将列设置为生成的服务器非常重要,因为您不希望它为该列发回可能不正确的数据 - NULL,旧日期或DateTime.Minumum,具体取决于类型和初始设置。 / p>

另一种替代方法是在代码中处理它并使用PropertyChanged事件处理程序为类中的每个列更新列。我认为采用触发路线更容易。请注意,这将使用Web服务器时间,而不是数据库时间 - 但它们应该保持同步(如果您使用的是安全连接,则必须是同步的)。你可以想象做一个选择以获得数据库服务器的时间,但是你总是会被往返时间关闭。正如我所说,我认为触发器更容易。