它是微软封装好一种ADO.NET数据实体模型,将数据库结构以ORM模式映射到应用程序中。sql
优势:数据库
1.简洁的Linq to Sql语句大大提升了开发人员的效率,不要再写复杂的sql语句;数据结构
2.再也不须要再管应用程序如何去链接数据库;函数
3.EF能够用做用于数据服务和OData Service的基础设施;blog
缺点:内存
1.因为linq语句编译以后就是sql,对于这种自动生成的sql语句没法控制;开发
2.EF的运行机制会消耗大量内存,大大下降了程序运行效率,从而致使下降了用户在客户端的体验效果;编译
3.一旦数据结构发生变化,须要更新EF数据model;有时还可能会出现找不到更新过的实体类这种状况;思维导图
Lambda表达式
lambda:匿名函数,就是没有名字的函数,简言之,它时将一块代码赋值给一个变量,直接把lambda当成参数传给函数。这样就使得代码变得更加整洁。
下面的思惟导图讲了,何时须要用到,还有使用lambda表达式的好处。效率
举个栗子:
下图是用了lambda表达式和没有用的对比代码:
是否是整洁、简短了不少?
当有一个很简单的方法时,咱们就能够将这个方法删掉,写成匿名函数的形式去传参。
LINQ集成查询
全拼:Language Integrated Query——语言集成查询
LINQ的优势:
LINQ查询与SQL查询的顺序:
LINQ先查询from的优点:
如写到from后 p in persons,以前都不肯定p的类型,因此age之类的属性不会智能提示。
link先写from,就多了智能感知(intelisence)的优点。
使用EF的优点