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 一些关于您的问题的查询或示例代码。
当我们使用 Entity Framework 时,实体可能处于以下状态之一:已添加、未更改、已修改、已删除或已分离。在桌面应用程序中,状态更改通常设置为自动,但在网络应用程序中,我们必须手动设置实体状态。
我想知道为什么?
通常,实体的状态由 Entity Framework 跟踪。
然而,在 Web 应用程序中,当从数据库中检索实体时,它会被发送到浏览器并且 Entity Framework 无法再 "see" 实体并且它无法再跟踪所做的任何更改到它。
因此,您必须手动告知 Entity Framework 来自 Web 请求的实体(例如来自表单 post)是否应被视为新实体(并且应插入) 或者它是否对应于数据库中的现有实体(并且应该更新)或者它是否应该被删除。
需要跟踪更改,找出您在附加实体上更改了哪些值,以及 entity framework 应该对附加的 entity.Setting 状态手动执行哪些操作很重要,以防万一分离的实体,但并非始终需要,如果您需要更多详细信息,那么您应该 post 一些关于您的问题的查询或示例代码。