EFCore的CURD基本操作

一、增加

  • 单笔增加

     //添加
            static void Add()
            {
                using (var db = new Entities())
                {
                    Student stu1 = new Student
                    {
                        Name = "李四",
                        Age = 19,
                        Adress = "合肥",
                        PhoneNumber = "13200000000"
                    };
    
                    //把实体对象附加到上下文
                    db.Student.Add(stu1);
                    //db.Entry(stu1).State=System.Data.Entity.EntityState.Added;  
                    var res = db.SaveChanges();
    
                    if (res > 0)
                    {
                        Console.WriteLine("添加数据成功!");
                    }
                }
            }
    
    
  • 批量增加

      //批量处理
            static void AddBatch()
            {
                using (var db = new Entities())
                {
                    for (int i = 1; i < 10; i++)
                    {
                        var stu1 = new Student
                        {
                            Name = "Rimche" + i,
                            Age = 19 + i,
                            Adress = "合肥",
                            PhoneNumber = "1730000000" + i
                        };
                        db.Student.Add(stu1);
                    }
    
                    //可以进行其他操作
    
                    db.SaveChanges();
    
                }
            }
    
    

二、查询

  • 普通查询

      //查询
            static void Query()
            {
                using (var db = new Entities())
                {
    
                    //根据ID进行查询
                    var stu1 = db.Student.Find(2);
                    var stu11 = db.Student.Where(x => x.Id == 1).FirstOrDefault();
                    //根据年龄查找,多个结果时,返回第一个
                    var stu2 = db.Student.Where(s=>s.Age==18).FirstOrDefault();
    
                    Console.WriteLine(stu1.Name);
                    Console.WriteLine(stu2.Name);
    
                    Console.WriteLine("======延迟查询======");
                    //根据条件,返回IQueryable,说明是延迟查询
                    var query = db.Student.Where(s => s.Id > 3);
                    foreach (var item in query)
                    {
                        Console.WriteLine(item.Id + "\t" + item.Name);
                    }
    
                    //查询所有
                    Console.WriteLine("======查询所有======");
                    var queryall=db.Student.ToList();
                    foreach (var item in queryall)
                    {
                        Console.WriteLine(item.Id + "\t" + item.Name);
                    }
    
                };
    
            }
    
  • 分页查询

      //分页查询
           static void PagingQuery(int pageIndex,int pageSize)
            {
                using (var db=new Entities())
                {
                    //分页一定要排序
                    var query = db.Student.OrderBy(s=>s.Id).Skip((pageIndex -1)*pageSize).Take(pageSize).ToList();
                    foreach (var item in query)
                    {
                        Console.WriteLine(item.Id + "\t" + item.Name);
                    }
    
                }
            }
    

三、更新

提供两种更新方式

   //更新
        static void Update()
        {
            using (var db =new Entities())
            {
                //方式一:官方推荐   只会修改需要修改字段
                Student stu = db.Student.Where(s => s.Id == 1).FirstOrDefault();
                stu.Name = "李时珍";
                db.SaveChanges();


                //方式二:修改所有字段
                Student stu1 = db.Student.Where(s => s.Id == 2).FirstOrDefault();
                stu1.Age = 10;
                db.Entry(stu1).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();

            }

        }

四、删除

提供两种删除方式

        static void Delete()
        {
            using (var db = new Entities())
            {
                var stu = db.Student.Find(2);//也可以从数据库查询到
                //方式一
                //db.Student.Remove(stu);

                //方式二
                db.Entry(stu).State = System.Data.Entity.EntityState.Deleted;

                int result = db.SaveChanges();
                Console.WriteLine(result);

            }
        }
posted @ 2022-02-17 11:01  码农阿亮  阅读(117)  评论(0编辑  收藏  举报