sql-server - Sql Server( Entity Framework ): created_at , Updated_at 列

标签 sql-server ruby-on-rails entity-framework

我想我应该提到我正在尝试让 Entity Framework\SQL server 来做一些我习惯于从 Rails 进行的事情。我真的只是想知道为我在数据库中插入/更新的记录自动创建created_at和updated_at列值的“最佳”方法。

现在我已经连接到ObjectContext.SavingChanges事件并且一切运行良好。然而,在我编写并测试了我的代码之后,我意识到可能有更好或更快的方法来做到这一点。

最佳答案

一种方法是使用插入/更新触发器将created_at和updated_at列设置为当前时间。

插入触发器看起来像这样:

CREATE TRIGGER [dbo].[inserted_myTable] ON [dbo].[myTable] AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;
    UPDATE [dbo].[myTable] Set AdmitDateTime = GetDate() where pkid in (SELECT pkid FROM Inserted)
END


更新触发器看起来像这样:

CREATE TRIGGER [dbo].[updated_myTable] ON  [dbo].[myTable] AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
    UPDATE [dbo].[myTable] Set AdmitDateTime = GetDate() where pkid in (SELECT pkid FROM Inserted)
END


触发方法的优点之一是时间/日期始终位于同一时区。另一个优点是,如果有人在应用程序外部修改数据库记录,字段仍然会更新。

关于sql-server - Sql Server( Entity Framework ): created_at , Updated_at 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/516517/

相关文章:

sql-server - 比较数据库项目的模式时出错

ruby-on-rails - 如何将 Google Analytics 结果合并到我的 Rails 3 应用程序中?

c# - Entity framework Profile Provider example..如何初始化和设置请帮忙!

ruby-on-rails - 尝试升级到 Rails 5 时,出现 "Bundler could not find compatible versions for gem "railties""错误

ruby-on-rails - 设计中的 sign_in_and_redirect 如何工作?

c# - 如何使用 IQueryable 方法返回额外数据?

c# - System.Data.Sqlite 是否支持 Entity Framework 6?

python - 截断表不适用于 SQL Server sqlalchemy 引擎和 pandas

c# - 查询 EDMX 中的多对多联接表

c# - 将 LINQ to EF 查询加速到最大