数据库记录的“图像”之前和之后。

时间:2018-08-06 08:14:53

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

我正在使用ASP.NET MVC,也正在使用MS SQL Server。

让我们说我有一个像这样的类/模型:

public class Product{
  public int ID { get; set; }
  public string WH {get; set;}
  public decimal WEIGHT { get; set; }
  public System.DateTime MAINT_DATE {get; set;}
}

因此,有一个视图可以捕获产品的任何更新。现在,当我单击“视图”上的“保存”按钮时,产品的维护日期或MAINT_DATE将在数据库中更新。

但是,可以说我的要求有些不同。当我在视图中按保存按钮时,我需要检查产品中是否有任何更改,WHWEIGHT的属性是否没有更改,即使我按保存按钮,维护日期不应更新。

如果在使用Entity Framework时要这样做,那么我当然会使用类似以下的内容:

 Product currentProduct = db.Products.Find(productID);
 var oldWHvalue = currentProduct.WH;
 var oldWEIGHTvalue = currentProduct.WEIGHT; 

因此,我将转到数据库,然后检查存储在数据库中的“先前”值,并将其与用户从表单提交的新值进行比较。对于上述情况,这似乎没问题。但是,如果模型具有很多属性,可能有30个或更多属性,那意味着我必须编写许多类似于上述代码的代码行,以检查对象的任何属性是否有任何更改。

我的问题是,是否还有其他我不知道的方法或技术。因此,最初数据库中Product ID 1的记录是

WH => "Warehouse 2" 
WEIGHT => 33.50

然后,更新后,数据库中Product ID 1的记录变为:

WH => "Warehouse 1"
WEIGHT => 30

在更新前后,是否有某种技术可以获取此产品ID 1的数据库记录的“图像”并进行比较?

0 个答案:

没有答案