seo门户网站优化,php网站开发实例视频,扬州建设安装网站,在线网站建设哪家便宜前言 在 Entity Framework 简单查询操作 中主要是学习了在Entity Framework中的几种不同模式的查询操作#xff0c;现在主要来学习一下简单的增加、删除、修改操作。 增加 在EF中添加操作一般有两种方式#xff1a;一是直接创建对象#xff0c;然后调用“DbSet”的”Add()”…前言 在 Entity Framework 简单查询操作 中主要是学习了在Entity Framework中的几种不同模式的查询操作现在主要来学习一下简单的增加、删除、修改操作。 增加 在EF中添加操作一般有两种方式一是直接创建对象然后调用“DbSet”的”Add()”方法进行添加二是调用数据库上下文的”Entry()”方法并设置对应的状态。无论使用哪种方式最终一定要调用“SaveChange()”进行提交。如 using (var db new EFContext()){var stephen new Person{PersonNameaehyok0001,Age25,Address深圳南山,Emailaehyok163.com};db.Persons.Add(stephen);var jeffrey new Person{PersonName aehyok0002,Age 25,Address 深圳宝安,Email Leo163.com};db.Entry(jeffrey).State EntityState.Added;db.SaveChanges();} 执行后效果如下 此外在含有导航属性时将一个对象赋值给另一个对象的导航属性也能达到添加的效果当导航属性为”DbSet“集合时通过调用导航属性的“Add()“方法也同样可以达到添加效果。 状态跟踪 在这里我们需要强调一点那就是状态跟踪对于上面的操作如果我们调用“Attach()”方法对实体进行跟踪或者设置实体的状态那么数据将不会保存到数据库 这两句添加任何一句效果都是一样的就是都没有保存到数据库中。 使用”Attach()”方法进行实体跟踪时会设置实体的状态为“Unchanged”此时实体处于未修改状态当执行“SaveChange()”方法时EF不会执行修改操作。相反如果此时设置实体状态为“Modified”则EF执行更新操作。那么既然EF的数据修改操作增加、更新、删除是根据实体状态而进行的那么为什么之前我们的增加操作能正常进行而不用手动修改其状态呢原因是EF会自动发现状态改变在调用下面的方法时状态发现是自动的 当然并不是所有的时候我们都需要EF自动发现状态改变设置 “DbContext.Configuration.AutoDetectChangesEnabled”属性为“false”可以禁用自动发现功能。 删除 现在来看一下Entity Framework的删除操作 using (var db new EFContext()){var person db.Persons.Where(m m.PersonId 4).FirstOrDefault();db.Persons.Remove(person);db.SaveChanges();} 当然有了上面状态跟踪的讨论相信大家也可以想到如下删除方法: using (var db new EFContext()){var person db.Persons.Where(m m.PersonId 5).FirstOrDefault();db.Entry(person).State EntityState.Deleted;db.SaveChanges();} 上面两种方法都会达到删除的目的。 修改 修改数据很简单直接修改对应的属性即可: using (var db new EFContext()){var person db.Persons.Where(m m.PersonId 3).FirstOrDefault();person.PersonNameUpdateNewName;db.SaveChanges();} 需要说明的是,EF在执行修改操作前会检查哪些属性发生了变化,并且只会修改发生变化的字段。