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

Entity States in a web application and in a desktop application

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

我想知道为什么?

通常,实体的状态由 Entity Framework 跟踪。

然而,在 Web 应用程序中,当从数据库中检索实体时,它会被发送到浏览器并且 Entity Framework 无法再 "see" 实体并且它无法再跟踪所做的任何更改到它。

因此,您必须手动告知 Entity Framework 来自 Web 请求的实体(例如来自表单 post)是否应被视为新实体(并且应插入) 或者它是否对应于数据库中的现有实体(并且应该更新)或者它是否应该被删除。

需要跟踪更改,找出您在附加实体上更改了哪些值,以及 entity framework 应该对附加的 entity.Setting 状态手动执行哪些操作很重要,以防万一分离的实体,但并非始终需要,如果您需要更多详细信息,那么您应该 post 一些关于您的问题的查询或示例代码。