Web应用程序和桌面应用程序中的实体状态

时间:2015-03-30 13:35:23

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

当我们使用Entity Framework时,实体可能处于以下状态之一:已添加,未更改,已修改,已删除或已分离。在桌面应用程序中,状态更改通常是自动设置,但在Web应用程序中,我们必须手动设置实体状态。

我想知道为什么?

2 个答案:

答案 0 :(得分:2)

通常,实体框架会跟踪实体的状态。

然而,在Web应用程序中,当从数据库中检索实体时,它将被发送到浏览器,并且实体框架不再能够"参见"实体,它无法再跟踪对其所做的任何更改。

因此,您是否必须手动告知实体框架是否应将来自Web请求的实体(例如来自表单帖子)视为新的实体(应插入)或者是否与现有实体相对应在数据库上(并且应该更新)或者是否应该删除它。

答案 1 :(得分:0)

需要跟踪更改,找出您已更改附加实体的值,以及实体框架应对该附加实体执行的操作。手动设置状态对于分离的情况非常重要实体,但不是一直要求,如果您需要更多详细信息,那么您应该在您的问题上发布一些查询或示例代码。