实体状态

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

实体状态_第1张图片
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状态。
实体状态_第2张图片
Unchanged
  • Modified

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

实体状态_第3张图片
Modified
  • Delete
    实体EF被上下文所追踪并存在于数据库中,当标记为Deleted状态时,SaveChanges时数据将在数据库中被删除。
实体状态_第4张图片
Delete

你可能感兴趣的:(实体状态)