检测asp.mvc上下文中实体的变化

本文关键字:实体 变化 上下文 asp mvc 检测 | 更新日期: 2023-09-27 17:50:15

我有一个非常标准的场景。我将实体从控制器发送到视图,让用户编辑它。用户按下提交按钮,我在控制器中从浏览器取回实体。它现在是分离的,所以我把它连接回上下文。如何检测是否对数据库进行了更改?

检测asp.mvc上下文中实体的变化

您需要在用户提交时从数据库中拉回实体。有很多原因使你不能仅仅通过查看返回的内容来确定该做什么:

    不能信任来自用户的数据。用户可以完全控制浏览器发送给您的内容,因此如果您在请求中键入某些内容,这可能是一个漏洞。
  1. 其他用户可能已经修改了相同的数据

从数据库中拉一个实体是很快的,所以只要拉它,设置你想要设置的字段和SaveChanges()

补充:正如爱德华在下面的评论中指出的那样,看起来有一个实用程序方法ApplyCurrentValues可以做到这一点:msdn.microsoft.com/en-us/library/dd487246.aspx