我正在使用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将在数据库中更新。
但是,可以说我的要求有些不同。当我在视图中按保存按钮时,我需要检查产品中是否有任何更改,WH
和WEIGHT
的属性是否没有更改,即使我按保存按钮,维护日期不应更新。
如果在使用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的数据库记录的“图像”并进行比较?