一、为什么要了解数据库底层
因为框架是方便程序员开发的,而不是让程序员变成傻瓜的,当我们用框架时,应该知道底层发生了什么,而不是框架告诉你怎么用就怎么用。
就比如,尽管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的工具