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 ...
随机推荐
- AS3和js相互通信要点分析
目标:在html页面里可以使用事件来影响到swf文件的内容,swf文件也可以影响html里js代码的内容 一.新建flash文件,用Flash CC试用版新建一个TextArea.fla的源文件,不添 ...
- flask+html selected 根据后台数据设定默认值
先给代码 <script> $("#selector_political_status").val('{{ archive.political_status }}'); ...
- 【LeetCode】#1 Two Sum
[Question] Given an array of integers, return indices of the two numbers such that they add up to a ...
- [HTML/HTML5]3 页面结构
在HTML5之前,主要的容器元素是div元素,但在HTML5中提供了数种其它容器元素供我们使用. 因此,当组织Web页面结构时,首先使用HTML将内容分成多部分,然后在对其使用CSS应用样式和格式. ...
- JavaScript实现快速排序
思想: 通过分治思想.递归方法将数据依次分解为包含较小元素和较大元素的不同子序列 1.在数组中选择一个元素为基准 2.对数组进行遍历,小于基准的元素都移到基准的左边,大于基准的元素都移到基准的右边 3 ...
- tab切换-2016.6.4
以前的tab切换,一般都是自己找网上的源代码,不知道含义,直接套,然后会有一些不知道的问题出现. 最近学习了jq(当然属于懒人的我,学习进度很慢),然后再工作中遇到了tab选项卡,所以决定自己写一个. ...
- 关于app的具体实施
鉴于我们小组做的app是关于在线做题和游戏相融合的,所以,我会先学习UI设计,毕竟好的UI设计不仅会给用户耳目一新的体验,同时还会让用户愿意去包容一些小BUG,但如果你的软件做的非常好,功能提供的很全 ...
- 对象列表转换为DataTable或DataTable转换为对象列表.
/**********************************************************************************/ // 说明: 数据转换工具. ...
- IOS Core Animation Advanced Techniques的学习笔记(四)
第五章:Transforms Affine Transforms CGAffineTransform是二维的 Creating a CGAffineTransform 主要有三种变 ...
- Adapter 启动时报错
如果把Adapter安装到C盘,有时在启动Adapter的时候会抛出java.io.IOException: Cannot run program "C:\tibco\adapter\adr ...