学习EF的前提:
熟悉Linq和ADO.Net, 熟悉委托和Lamdba
在使用EF框架进行开发时,我们大多情况使用Linq进行数据查询和操作,而EF底层实现是用ADO.Net进行封装的
EF框架其实就是ORM框架
ORM: Object(对象) Relational(关系) Mapping(映射) ,通俗讲就是用操作对象的方式操作数据库。操作方式不再是直接执行操作insert ... , 而是类似于下面这样的作法:
Student stud = new Student();
stud.name = "张三";
db.save...;
ORM工具有很多Dapper、SqlSugar、FreeSql、PetaPoco、Nhibernate,最首推的还是微软官方提供的EF,EF屏蔽了数据库差异,Dapper要注意
数据库类型:关系型数据库(RDB)、非关系型数据库、键值数据库
非关系型数据库:对象数据库 (例如mongodb【通过json】)
EF三种创建方式
Model-First(模型优先) 、Database-First(数据库优先)、Code-First(代码优先)
Entity Framework 6支持上述三种方式,最新版EF Core只支持Code-First,业界也都是推荐Code-First
EF 和 ADO.Net 各自的优缺点
ADO.Net:性能快,开发效率低
EF:开发效率高、性能有所下降、很好的支持存储过程、强大的映射引擎、能与微软自己的框架很好的集合,Winform/WPF/WCF等各种开发框架
全球问答网站:stackoverflow,主要的开发技术都是.net开发的,Dapper是stackoverflow开发的