zoukankan      html  css  js  c++  java
  • 实体的状态

    数据库上下文对象维护内存中的对象与数据库中数据行之间的同步。这些信息在调用 SaveChanges方法被调用的时候使用。例如,当使用 Add 方法传递一个新的实体对象时,实体的状态被设置为 Added,在调用 SaveChanges方法的时候,数据库上下文使用 SQL 命令 Insert来插入数据。

    实体的状态可能为如下之一:

    1.  Added. 实体在数据库中不存在。SaveChanges 方法必须执行 Insert 命令
    2.  Unchanged. 在调用 SaveChanges 的时候不需要做任何事情,当从数据库读取数据的时候,实体处于此状态。
    3.  Modified. 某些或者全部的实体属性被修改过. SaveChanges方法需要执行 Update 命令。
    4. Deleted. 实体标记为已删除,SaveChanges 方法必须执行 Delete 命令。
    5. Detached. 实体的状态没有被数据库上下文管理。

    在桌面应用程序和Web应用程序中的运行

    在桌面应用中,实体的状态改变典型地自动完成。在这种类型的应用中,你读取一个实体,然后修改某些属性的值,这使得实体的状态被自动修改为 Modified。然后,在调用SaveChanged 的时候,实体框架生成 Update 命令进行更新,只有你修改的实际属性被更新。

    但是,在 Web 应用程序中,这个处理序列不是连续的。因为数据库上下文读取的实体对象实例在页面被呈现之后被丢弃了。当 HttpPost Edit 方法被调用的时候,导致一个新的请求和一个新的数据库上下文对象被生成,所以,你必须手工设置实体的状态为 Modified。然后调用 SaveChanges 方法,实体框架更新数据库中数据行的所有列,因为数据库上下文没有办法知道你修改了哪些属性。

    NET技术交流
  • 相关阅读:
    CBR(基于案例的推理)的产生和Roger Schank=Schank教授在他的著作中提出了以“记忆组织包"
    php 设计模式
    php 常用资源
    自然语言处理著作或期刊名称2
    北京师范大学语言学及应用语言学研究生培养方案
    !!! Analysis & Design 很好的汇总+zcl的 UML 体会
    睡眠的方法
    !!!【php100教程】
    机器翻译和自然语言信息处理专业硕士研究生培养方案
    愧薪
  • 原文地址:https://www.cnblogs.com/Relict/p/2511835.html
Copyright © 2011-2022 走看看