zoukankan      html  css  js  c++  java
  • Entity Framework Tutorial Basics(10):Entity Lifecycle

    Entity Lifecycle:

    Before we work on CRUD operation (Create, Read, Update, Delete), it's important to understand the entity lifecycle and how it is being managed by the EntityFramework.

    During an entity's lifetime, each entity has an entity state based on the operation performed on it via the context (DbContext). The entity state is an enum of type System.Data.Entity.EntityState that includes the following values:

    1. Added
    2. Deleted
    3. Modified
    4. Unchanged
    5. Detached

    The Context not only holds the reference to all the objects retrieved from the database but also it holds the entity states and maintains modifications made to the properties of the entity. This feature is known as Change Tracking.

    The change in entity state from the Unchanged to the Modified state is the only state that's automatically handled by the context. All other changes must be made explicitly using proper methods of DbContext and DbSet.

    The following figure illustrates how the operation performed on entity changes its' states which, in turn, affects database operation.

    entity states in Entity

    As you can see in the above figure, new entity in context has Added entity state. So the context will execute insert command to the database. In the same way, when you retrieve an existing entity using L2E queries, it will have Unchanged state, this is because you have just retrieved an entity and hasn't performed any operation on it yet. When you modify values of existing entity, it changes its state to Modified which in turn will execute update command on SaveChanges. Deleted entity from context will have Deleted state which in turn will execute delete command to the database.

    So, in this way, operations performed on entities changes states. Context builds and executes database commands based on the state of an entity.

  • 相关阅读:
    ajax请求成功后打开新窗口地址
    向table添加水平滚动条
    使用jQuery实现类似开关按钮的效果
    利用jQuery实现CheckBox全选/全不选/反选
    jQuery插件开发
    九度oj 题目1214:丑数
    素数的筛选法
    九度oj 题目1367:二叉搜索树的后序遍历序列
    九度oj 题目1499:项目安排
    九度oj 题目1160:放苹果
  • 原文地址:https://www.cnblogs.com/purplefox2008/p/5648972.html
Copyright © 2011-2022 走看看