Entity FrameWork 增删查改的本质

之前的文章里面已经说了,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         }
ADD

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         }
Modify

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         }
Delete
原文地址:https://www.cnblogs.com/caofangsheng/p/4526125.html