• EntityFramework 学习 一 Entity Lifecycle 实体生命周期


    当我们执行CRUD(Create,Read,Update,Delete)操作之前,最重要的是搞明白实体的生命周期和EntityFrameword怎么管理实体

    在一个实体的生命周期里,每个实体都有一个实体状态(基于上下文DbContext执行的操作),实体状态是一个枚举类型System.Data.Entity.EntityState

    包含以下值:

    1.Added

    2.Deleted

    3.Modified

    4.Unchanged

    5.Detached

    这个上下文Context不仅拥有从数据库中查询出来的实体引用,而且拥有实体的状态和维护实体属性的变化修改,这个特征就是变化跟踪(Change Tracking

    实体状态从Unchanged 状态变到Modified状态是由上下文context自动处理的,其他所有的改变必须明确地调用DbContext和DbSet中的方法来完成

    下面的图标说明实体上的哪些操作改变实体的状态,反过来影响数据库的操作

    由上图所示,context中新的实体有Added实体状态,因此上下文将执行插入数据库命令,同样的,当你通过L2E查询一个存在的实体,它将是Unchanged实体状态,这是因为你刚刚查询实体且没有在该实体上执行任何操作。当你更改已存在实体的值时,它的状态变为Modified实体状态,在SaveChanges时,将执行更新操作。从contxt上下文删除实体,它变为Deleted状态,将执行删除操作。

    因此,实体上的操作将改变实体的状态,Context通过实体的状态创建和执行数据库命令。

  • 相关阅读:
    校验函数
    声明
    主程序(开始检查)
    活代码LINQ——09
    活代码LINQ——08
    活代码LINQ——07
    活代码LINQ——06
    活代码LINQ——05
    活代码LINQ——04
    活代码LINQ——03
  • 原文地址:https://www.cnblogs.com/lanpingwang/p/6597391.html
Copyright © 2020-2023  润新知