如何在更新asp .net mvc 5时保留旧数据记录

时间:2015-04-22 04:37:05

标签: c# sql-server asp.net-mvc database entity-framework-6

我正在使用Asp .net mvc5 with EF6创建一个财务应用程序。我对更新数据库有一个很大的难题。我想要的是我有Person(e.g. firstname, lastname, address, salary, tax, and so on)。我第一次输入了记录(e.g. John, Smith, US, 3500.00,)。当John Smith获得晋升时,我会将他的工资更新为4000.00,而我仍然希望保留他的旧工资3500.00。如果我不保留他的3500.00,那么他tax工资的other deductible3500.00费用将不会reflect correctly直至他获得的最后一天{ {1}}。一直到3500.00的税款数据将会丢失,并会根据3500.00反映。

有人可以指导我如何解决这个问题吗?感谢您是否可以共享我可以针对此类问题学习的任何资源或链接。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您需要创建一个与主表Person对应的表格,我们可以将其称为Person_log (e.g. firstname, lastname, address, salary, tax,Entry_Date_On_Log and so on)

  

流程1:

创建一个触发器,用于插入,更新和插入记录到Person_log表上的Person表上的Person_log表。

  

流程2:

您可以手动(使用查询代码)在Person表的每个条目上输入Person_log表的记录。

  

现在,每当您想要计算税或其他任何东西时   对应于Person的日期,您可以轻松找到薪水   或来自Entry_Date_On_Log表的人员的任何其他记录   日期过滤器({{1}})。

答案 1 :(得分:0)

除了user3540365建议的方法还有2种方法

方法1

使用变更数据捕获(SQL Server)

你可以阅读here

方法2

您可以创建日志表并使用输出子句

详细了解输出子句here

我会说方法1这很容易