之前的文章里面已经说了,EF的增删查改。那时候的修改,删除,只能是先查询出来要修改的数据,再修改,删除。。。现在来一个改进版的,增删查改。
1.Add
1 static void Add() 2 { 3 //1.创建student对象,并使用对象初始化器,初始化这个对象 4 Studnet stu = new Studnet() 5 { 6 s_Name = "古巨基", 7 s_Sex = "男", 8 s_Age = 39, 9 c_ID = 2, 10 11 }; 12 13 //2。将对象加入到EF,并获取当前实体的状态管理对象 14 DbEntityEntry entry= db.Entry<Studnet>(stu); 15 //3.设置对象的状态为Added(entry.State) 16 entry.State = System.Data.EntityState.Added; 17 //4.保存到数据库 18 db.SaveChanges(); 19 20 //测试代码 21 Console.WriteLine("新增成功"); 22 }
2.Modify
1 /// <summary> 2 /// 自己动手写修改(优化的修改方式,创建对象直接修改) 3 /// </summary> 4 static void Edit() 5 { 6 7 //1.查询出一个要修改的对象 8 Studnet stu = new Studnet() 9 { 10 //1.查询出一个要修改的数据 11 //数据库中有s_ID为12的数据,这句话的意思是,把s_ID=12的记录的 12 //名字改为“小白!!!”,性别改为“女”,年龄改为“23” 13 s_ID = 12, 14 s_Name = "小白!!!", 15 s_Sex = "女", 16 s_Age = 23, 17 }; 18 19 //2,把对象加入到EF容器,并获取当前实体对象的状态管理对象 20 DbEntityEntry entry=db.Entry<Studnet>(stu); 21 //3.设置该对象未被修改过,Unchanged. 22 entry.State = System.Data.EntityState.Unchanged; 23 //4.设置修改过的属性 24 entry.Property("s_Name").IsModified = true; 25 entry.Property("s_Sex").IsModified = true; 26 entry.Property("s_Age").IsModified = true; 27 28 //5.保存数据库 29 db.SaveChanges(); 30 31 //---测试 32 Console.WriteLine("修改成功"); 33 34 }
3Delete
1 /// <summary> 2 /// 删除 3 /// </summary> 4 static void Delete() 5 { 6 7 //1创建需要删除的对象,这里只是测试,删除Id=15的数据 8 Studnet stu = new Studnet() { s_ID = 15}; 9 10 //2将对象加入到EF容器,并获取当前对象的状态管理对象 11 DbEntityEntry<Studnet> entry= db.Entry<Studnet>(stu); 12 13 14 //3.把对象的状态改为Deleted 15 entry.State = System.Data.EntityState.Deleted; 16 17 //4把数据保存到数据库 18 db.SaveChanges(); 19 //测试用----------------------- 20 Console.WriteLine("删除成功"); 21 }