【问题标题】:SQL Server & EF: How to have a computed columnSQL Server & EF:如何有一个计算列
【发布时间】:2012-06-12 06:14:59
【问题描述】:

我希望有一个在每次更改(插入、修改)时都会更新的字段,基本上,它是一个“ModificationDate”。

我看到 EF 中有一个“计算的”StoreGeneratedPattern。但由于这不会设置日期,而只会获取数据库生成的值,我需要知道我应该在数据库上做什么才能在每次修改/插入时将此默认值设置为相当于GetDate()

【问题讨论】:

标签: sql sql-server entity-framework calculated-columns


【解决方案1】:

您需要创建INSTEAD OF 更新trigger 来获取数据并自行执行更新,或者创建AFTER UPDATE 触发器,您可以在其中执行另一次更新以设置日期。

在保存到数据库之前覆盖SaveChanges 并在应用程序中设置日期会更容易。

【讨论】:

  • 认真的吗?表格设计器中有一个“计算列规范”,其中包含一个公式和一个 IsPersisted。我在 MCTS 考试中看到这个 Computed StoreGeneratedPattern 作为正确答案,所以我认为这是更好的方法
  • StoreGeneratedPattern.Computed 仅告诉 EF 数据库是在数据库中生成的,因此它不会发送值并在更新后查询值,但您必须在数据库中生成。
  • 是的,我知道,但是如果这个“计算列规范”不能用于指示如何生成此列,那么它是什么?
  • 但是表格设计中计算列的目的是根据其他列计算一些值。
猜你喜欢
  • 2016-09-25
  • 2016-09-13
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 2016-08-09
  • 2011-04-11
相关资源
最近更新 更多