实体状态

EF通过上下文负责跟踪实体的状态,EF实体状态存在于命名空间System.DataEntity 下的EntityState枚举中。

EntityState

1、 Added

Added状态针对添加操作,当标记为此状态时,表明实体被上下文所追踪但是不存在与数据库中。当调用SaveChanges时,则会插入数据库中。

  • 间接标记
var employess=new Employee()
                {
                    CreateTime = DateTime.Now,
                    ModifiedTime = DateTime.Now,
                    Name = "杨钰涵",
                    PhoneNumber = "189********",
                    DetailAddress = "中国"
                };
                db.Employees.Add(employess);
                db.SaveChanges();
  • 直接标记
 db.Database.Log = Console.WriteLine;
                var employess=new Employee()
                {
                    CreateTime = DateTime.Now,
                    ModifiedTime = DateTime.Now,
                    Name = "杨钰涵",
                    PhoneNumber = "189********",
                    DetailAddress = "中国"
                };
                db.Entry(employess).State = EntityState.Added;
                db.SaveChanges();
  • Unchanged
    实体被EF上下文所追踪,但是存在于数据库中的值未发生改变。若一个实体不存在于数据库,但是该实体要被上下文所追踪,同时该实体值未发生改变,则可以通过Attach进行附加追踪,然后标记为Unchanged状态。
Unchanged
  • Modified

实体被EF上下文所追踪并存在于数据库中,同时部分或者所有属性值已被更改,当调用SaveChanges时,则更新属性到数据库中,在EF6.x中不存在Update方法。

Modified
  • Delete
    实体EF被上下文所追踪并存在于数据库中,当标记为Deleted状态时,SaveChanges时数据将在数据库中被删除。
Delete
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、概况 实体有5中状态,如下: Detached 不被EF追踪的实体 Added 新增的实体 Unchanged...
    落地成佛阅读 287评论 0 0
  • 1、瞬时/临时状态(transient)对象不存在于数据库及session缓存当中 2、持久化状态(persist...
    Veteor阅读 378评论 0 0
  • CRUD (创建,读取,更新和删除) 本系列文章介绍及索引目录 在上一章节中,您创建了一个使用 Entity Fr...
    程序员长春阅读 1,682评论 0 1
  • 什么是Entity Framework 在.NET 3.5之前,开发者通常使用ADO.NET获取或保存数据到底层数...
    书上得来终觉浅阅读 11,971评论 0 11
  • 今天是周一,因为要大扫除所以去的比较早,8点多就到了。还是同往常一样齐心协力的进行扫除。扫除完之后,就在会议室开...
    高俊01阅读 202评论 1 0