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的工具
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!