EFCore——EFCore底层实现(7)

一、为什么要了解数据库底层

因为框架是方便程序员开发的,而不是让程序员变成傻瓜的,当我们用框架时,应该知道底层发生了什么,而不是框架告诉你怎么用就怎么用。
就比如,尽管EFCore优化的足以很好的解决绝大部分的场景,但有些场景却不那么尽人意,这时候我们就需要知道他底层是怎么工作的,当出错了能明白啥哪里出了问题,然后可以自己进行调整。如果只会用框架,就不能解决这些问题;

二、EFCore的运作流程

在这里插入图片描述
EFCore底层依旧是ADO.NET Core,是对他的封装

三、查看生成的SQL语句

1.SqlServer Profiler查看SqlServer当前执行的Sql语句,而执行的语句是来自所有来源,不止自己的电脑的Sql

  class Program
    {
        static void Main(string[] args)
        {
            using(LTYHRContext db = new LTYHRContext())
            {
            //在这里查询了总数,到Profiler中查看具体执行了什么操作
                Console.WriteLine(db.TPersons.Count());
            }
            
        }
    }

在这里插入图片描述

四、执行一条插入语句

 class Program
    {
        static void Main(string[] args)
        {
            using(LTYHRContext db = new LTYHRContext())
            {
                Console.WriteLine(db.TPersons.Count());
                TPersons persons = new TPersons();
                persons.Name = "LTY";
                persons.BirthDay = new DateTime(1999, 12, 30);
                db.TPersons.Add(persons);
                db.SaveChanges();
            }

        }
    }

执行完查看Profiler
在这里插入图片描述

五、总结

EFCore就是将C#代码转换为Sql的工具

posted @   有诗亦有远方  阅读(44)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示