entity framework 新手入门篇(1.5)-lambda表达式与linq
在建立好了EF模型之后,先不着急使用它,在使用它之前,你还需要了解两个相关的技术,lambda表达式与linq。
作为微软C#语言中重要的语法糖-lambda表达式与LINQ,本质都是一个方法,以lambda表达式为例:
x=>x+1;就是一个完整的lambda表达式。
其等同于一个匿名的方法:
int anonymous(int x)
{
return x+1;
}
考虑一下这个方法中最重要的部分,也就两个部分:传入的参数,返回的参数。
返回值类型,参数类型都是可以进行推断的,就像C#中的VAR关键字。所以,X=>X+1就是一个最简单的x++的lambda表达式的实现。
知道了它的本质,那我们应该怎么使用它呢?我来举一个最简单的例子:从一个不规则的字符串数组中取出所有以s开头的字符串
看到这里,最直接,最小白的写法:

循环整个数组,找到字符串里S的索引为0的字符串,加入到新的LIST中。
除了这个,其实还有更优雅,更面向对象的一些的写法,例如:

但这两种写法, 我们都写了一个循环,新建了一个集合来收集所有符合条件的变量。接下来,如果使用lambda或者LINQ将会如何呢?

这一段,完整的包括了新建元数据,使用两种写法进行筛选,最终打印到屏幕。
第一句是建立元数据,不做详解,第二句是linq语句的写法
from X in XXX where true select x是linq的经典句式,x为临时变量,与lambda表达式中的x相同。XXX是可枚举类型,如数组,集合等。where后面是一个BOOL值用作判断条件,最终select后面的,就是返回值了。我们返回了X,并最终使用了TOARRAY方法,所以,最终的数据类型是string[].(如果使用ToList()方法,将最终得到集合类List<string>)。
第三句是lambda写法,where()表示查询的条件,如果需要明显指定取出的值,还可以在where方法后再接一句.select(x=>x)。当然在这里我们只取一个值,就显得毫无必要了。
看完了这个例子,是不是想问,这与EF有个毛的关系?
其实,这个例子用在数据库查询中,就相当于select id from table1 where name like 's%';
而这个例子只要稍加改动,就能变成EF中最重要的查询手段。
entity framework 新手入门篇(1.5)-lambda表达式与linq的更多相关文章
- entity framework 新手入门篇(4)-entity framework扩展之 entityframework.extended
对于EF的操作,我们已经有了大概的了解了,但对于实战来说,似乎还欠缺着一些常用的功能,那就是批量的删除,更新数据. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和seller ...
- entity framework 新手入门篇(2)-entity framework基本的增删改查
经过前两节的简单描述,终于可以进入entity framework的使用部分了.本节将对entity framework原生的增删改查进行讲解. 承接上面的部分,我们有一个叫做House的数据库,其中 ...
- entity framework 新手入门篇(3)-entity framework实现orderby,count,groupby,like,in,分页等
前面我们已经学习了entityframework的基本的增删改查,今天,我们将在EF中实现一些更加贴近于实际功能的SQL方法. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和 ...
- entity framework 新手入门篇(1)-建立模型
entity framework是微软官方免费提供给大家的一套ORM(Object Relational Mapping对象关系映射)解决方案.它不仅可以帮助我们解决数据缓存的问题,还能在最小的开销下 ...
- Entity Framework 新手入门友好实例
起因 因为实习的原因,程序之中用到了较多的数据库操作逻辑.如果每一处数据库操作都手写的话,工作量较大且后期不易于维护,所以希望能通过 ORM 框架来解决这两个问题. 在昨天之前,对于 ORM 这个词汇 ...
- 实体框架(Entity Framework)快速入门--实例篇
在上一篇 <实体框架(Entity Framework)快速入门> 中我们简单了解的EF的定义和大体的情况,我们通过一步一步的做一个简单的实际例子来让大家对EF使用有个简单印象,看操作步骤 ...
- Entity Framework 程序设计入门二 对数据进行CRUD操作和查询
前一篇文章介绍了应用LLBL Gen生成Entity Framework所需要的类型定义,用一行代码完成数据资料的读取, <LLBL Gen + Entity Framework 程序设计入门& ...
- Entity Framework快速入门--ModelFirst
Entity Framework带给我们的不仅仅是操作上的方便,而且使用上也很是考虑了用户的友好交互,EF4.0与vs2010的完美融合也是我们选择它的一个理由吧.相比Nhibernate微软这方面做 ...
- 使用MVC5的Entity Framework 6入门 ---- 系列教程
使用MVC5的Entity Framework 6入门(十二)——为ASP.NET MVC应用程序使用高级功能 为ASP.NET MVC应用程序使用高级功能这是微软官方教程Getting Starte ...
随机推荐
- 7 -- Spring的基本用法 -- 3...
7.3 Spring 的核心机制 : 依赖注入 Spring 框架的核心功能有两个. Spring容器作为超级大工厂,负责创建.管理所有的Java对象,这些Java对象被称为Bean. Spring容 ...
- SEO之网站稳定
周未给大伙推荐个电影 :<环太平洋> http://947kan.com/movie/kehuan/45659/ 主要讲述了人类对抗从太平洋海底的时空裂缝不断传送过来的大怪兽,保卫家园的故 ...
- table表单中的td内容两端对齐
- explain 执行计划详解
id:id是一组数字,表示查询中执行select子句或操作表的顺序,如果id相同,则执行顺序从上至下,如果是子查询,id的序号会递增,id越大则优先级越高,越先会被执行. id列为null的就表是这是 ...
- iOS---自动布局
自动布局的发展 1.frame:通过代码计算 frame iPhone3GS \ iPhone4 \ iPhone4S 屏幕的物理尺寸是一样的(无需屏幕适配), 而且一个当时的应用要么是横屏要么是竖屏 ...
- Tableau修改参考线上显示的标签
修改Tableau中参考线上的标签显示内容,如下图所示:可根据自定义调整
- 超酷震撼 HTML5/CSS3动画应用及源码
HTML5可以制作非常华丽的动画效果,这点通过之前的分享学习我们已经有深刻的了解了,今天我们主要来分享一些HTML5结合CSS3形成的超炫震撼的动画应用以及它们的源代码,真的非常不错. 1.纯CSS3 ...
- node.js 学习
http://www.cnblogs.com/haogj/category/612022.html
- bzoj4213: 贪吃蛇
题意:给定一个网格,有一些格子是障碍不用管,剩余的是空地,你要用一些起点和终点在边界上的路径或环来完全覆盖掉空地,如果使用第一种,会付出1的代价,求最小代价,不能覆盖则输出-1. 现在看到网格而且数据 ...
- PHP基础教程-54课-问题
question: $arr = array(1,2,3,4); /*如何通过foreach 将数组变成 $arr = arry(2,4,6,8) */ 起初用: $arr = array(1,2,3 ...