EF Core 单表的增删查改

基于之前的CLI或者PMC创建的模型及数据库上下文,我们来实现对数据库单表的增删查改操作,内容比较简单,简单的基础是我们已经熟悉LINQ操作以及前面文章的铺垫

现在咱们直接上代码然后进行讲解

using (var db=new SchoolContext()) {
                //我们要做的是对teacher表进行增删查改
                //首先我们先新增数据
                db.Add(new Teacher()
                {
                    Salary = 20000,
                    Age = 30,
                    CreateTime = DateTime.Now,
                    InductionTime = DateTime.Now.AddYears(-10),
                    IsDetele = false,
                    IsMarried = true,
                    Job = "语文老师",
                    Name = "张珊",
                    UpdateTime = DateTime.Now
                });
                db.SaveChanges();

                查询数据
                var teacher = db.Teachers.FirstOrDefault(a=>a.Name== "张珊"); ;
                Console.WriteLine($"查询出的数据:{JsonConvert.SerializeObject(teacher)}");
                //修改数据
                teacher.Age = 40;
                db.Teachers.Update(teacher);
                db.SaveChanges();

                Console.WriteLine($"查询出的数据:{JsonConvert.SerializeObject(teacher)}");

                db.Teachers.Remove(teacher);
                db.SaveChanges();

                Console.WriteLine($"删除完成");
            }

大家应该发现一个规律就是每次执行完新增.修改.删除这些操作时都需要调用db.SaveChanges();这段代码,为什么?这段代码有什么特别之处吗?

官方给出了解释:

每个上下文实例都有一个 ChangeTracker,它负责跟踪需要写入数据库的更改。 更改实体类的实例时,这些更改会记录在 ChangeTracker 中,然后在调用 SaveChanges 时被写入数据库。 此数据库提供程序负责将更改转换为特定于数据库的操作(例如,关系数据库的 INSERT、UPDATE 和 DELETE 命令)

什么意思呢?

咱来解释一下,首先代码中只要涉及到数据变更的操作都会保存在ChangeTracker 这个里面,这个东西是啥玩意,不知道 ,经过百度翻译后,原来是变更跟踪器,相当于一个容器,用于保存所有数据操作 除了查询,然后SaveChanges 就是将这些操作进行提交到数据库中执行,这就意味着,如果不进行这个这段代码的调用的话,所有数据变更操作都是失效的,所以这句话至关重要。

其他的操作就很简单了,都是EF core 最常用的方法 官方文档上都有,后面的文章上涉及到了咱们再慢慢讲解与分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值