在这里我向大家推荐的一个具是LinqPad有了这个工具并熟练使用就可以很快学习并掌握linq

安装步骤:

使用LINQPad可以很方便的调试linq以及lambda表达式。其中自带了linq以及F#简单入门教程,LINQPad不管你喜不喜欢,反正我喜欢了,呵呵。LINQPad很精简,只有一个exe文件,可以从http://www.linqpad.net下载到。不扯淡了,简单介绍下这个工具,展示下LINQPad的魅力,真的很不错。

先看下如何连接数据库,运行LINQPad按下图进行操作,

点击next,弹出如下界面,

点击OK后的界面如下,

下面就可以对具体表进行linq操作了,如图

而后就可以在右侧的编辑窗口编写代码了,

点击不同的选项将会出现类似如下界面,

linqPad下载地址:http://www.linqpad.net/

它也自带了很多例子方便大家查询,linqPad支持object ,xml,sql ,  to linq这里我只讲一下sql to linq

好多同学不知道怎么用linq完成 left join ,inner join 等,这里我就用这个工具给大家实现一下

linqpad 会给我们同时生成lambda表达式,sql和IL 我一般情况下有linq的lambda不会的时候,就用Linqpad来调试得到结果

打开它的主页面看一下,点AddConnection 就可以添加数据库连接

先在数据库里建一个库MyDataDemo两个表Classes和Student

 数据库里建两个表

我们在linqPad的query标签里把Language 选择为c# Expression ,把Connection 选择数据MyDataDemo 就是我们上边建好的数据库如图

先看一下Left Join

我们在面版里输入最基本的Linq表达式 点执行或者F5

from stu in Students
join cla in Classes
on stu.Class_Id equals cla.Class_Id
into MyJoin
from grp in MyJoin.DefaultIfEmpty()
select new {ClassId=grp.Class_Id,Class_Name=grp.Class_Name,st_Name =stu.St_Name}

看一下linqPad给我们显示的结果
sql结果 是判断我们的Linq是不是正确的

看它是left outer join(left join 是Left outer join 和简写) 证明我们是正确的

SELECT [t1].[class_Id] AS [ClassId], [t1].[class_Name] AS [Class_Name], [t0].[st_Name]
FROM [Student] AS [t0]
LEFT OUTER JOIN [Classes] AS [t1] ON [t0].[class_Id] = [t1].[class_Id]

最强的是它还给我们生成lambda表达式

Students
.GroupJoin (
Classes,
stu => stu.Class_Id,
cla => cla.Class_Id,
(stu, MyJoin) =>
new
{
stu = stu,
MyJoin = MyJoin
}
)
.SelectMany (
temp0 => temp0.MyJoin.DefaultIfEmpty (),
(temp0, grp) =>
new
{
ClassId = grp.Class_Id,
Class_Name = grp.Class_Name,
st_Name = temp0.stu.St_Name
}
)

再看一下inner join

//inner join
from stu in Students
join cla in Classes
on stu.Class_Id equals cla.Class_Id
select new {ClassId=cla.Class_Id,Class_Name=cla.Class_Name,st_Name =stu.St_Name}

看一下sql结果我们是不是正确的

SELECT [t1].[class_Id] AS [ClassId], [t1].[class_Name] AS [Class_Name], [t0].[st_Name]
FROM [Student] AS [t0]
INNER JOIN [Classes] AS [t1] ON [t0].[class_Id] = [t1].[class_Id]

正确
再看一下lambda表达式

Students
.Join (
Classes,
stu => stu.Class_Id,
cla => cla.Class_Id,
(stu, cla) =>
new
{
ClassId = cla.Class_Id,
Class_Name = cla.Class_Name,
st_Name = stu.St_Name
}
)

就讲到这里大家可以多学习一下这个工具。

(上述图文来自:http://www.cnblogs.com/li-peng/p/3441729.html

以下内容由【吕津】增加:

PS:

我是在学习Entity Framework4视频的时候,有讲师提到了LINQPad工具。

http://v.youku.com/v_show/id_XMzA4MTQ0Mjk2.html

对于初学者,通过学习LINQPad的"Samples"可以快速地掌握和上手LINQ.

linqPad快速学习LINQ(含视频)的更多相关文章

  1. js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq

    js_html_input中autocomplete="off"在chrom中失效的解决办法 分享网上的2种办法: 1-可以在不需要默认填写的input框中设置 autocompl ...

  2. ASP.NET EF 使用LinqPad 快速学习Linq

    使用LinqPad这个工具可以很快学习并掌握linq[Language Integrated Query] linqPad官方下载地址:http://www.linqpad.net/ linqPad4 ...

  3. LinqPad工具:帮你快速学习Linq

    LinqPad工具:帮你快速学习Linq 参考: http://www.cnblogs.com/li-peng/p/3441729.html ★:linqPad下载地址:http://www.linq ...

  4. 用linqPad帮助你快速学习LINQ

    在这里我向大家推荐的一个具是LinqPad有了这个工具并熟练使用就可以很快学习并掌握linq linqPad下载地址:http://www.linqpad.net/ 它也自带了很多例子方便大家查询,l ...

  5. linqPad帮助你快速学习LINQ

    linqPad http://www.cnblogs.com/li-peng/p/3441729.html http://www.linqpad.net/ Linqer http://www.sqlt ...

  6. 学习LINQ,发现一个好的工具。LINQPad!!

    今日学习LINQ,发现一个好的工具.LINQPad!! 此工具的好处在于,不需要在程序内执行,直接只用工具测试.然后代码通过即可,速度快,简洁方便. 可以生成其LINQ查询对应的lambda和SQL语 ...

  7. ASP.NET快速学习方案(.NET菜鸟的成长之路)

    想要快速学习ASP.NET网站开发的朋友可以按照下面这个学习安排进度走.可以让你快速入门asp.net网站开发!但也局限于一般的文章类网站!如果想学习更多的技术可以跟着我的博客更新走!我也是一名.NE ...

  8. CSS 快速学习

    [快速学习让我不再思考太多,更多专注在一个 box 当中,上下文朝着正交方向前进~] [Think small,]https://learnxinyminutes.com/docs/zh-cn/css ...

  9. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 错误处理

    沪江CCtalk视频地址:https://www.cctalk.com/v/15114923887518 处理错误请求 爱能遮掩一切过错. 当我们在访问一个站点的时候,如果访问的地址不存在(404), ...

随机推荐

  1. strlen与sizeof

    strlen计算不包括终止符null字节的字符串长度,而sizeof则计算包括终止null字节的长度.另一个差别,strlen需要一次函数调用,而sizeof在编译时计算缓冲区长度.

  2. php上传文件进度条

    ps:本文转自脚本之家 Web应用中常需要提供文件上传的功能.典型的场景包括用户头像上传.相册图片上传等.当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了. 在PHP 5.4以前 ...

  3. HTML5 – 2.新元素

    figcaption 定义和用法 <figcaption> 标签定义 figure 元素的标题(caption). "figcaption" 元素应该被置于 " ...

  4. jQuery - 2.jQuery选择器

    1.id 选择器 2.标签选择器 3.类选择器 4.复合选择器 5.层次选择器 JQuery的迭代   JQuery选择器 JQuery选择器用于查找满足条件的元素,比如可以用$("#控件I ...

  5. 《Linux私房菜》笔记和问题记录

    鸟哥的Linux私房菜简体首页 对Linux的学习侧重于基本命令和运维相关的部分,最后章节的测试问题不错. 1.VIM程序编辑器 1.所有的Linux都会内建VI:很多软件的编辑接口都会主动呼叫VI: ...

  6. JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)

    1.流的简述及演示案例输入流和输出流相对于内存设备而言.将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出.字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表. ...

  7. 【sicily】卡片游戏

    卡片游戏  Time Limit: 1sec    Memory Limit:32MB Description 桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张牌 ...

  8. HDU5115 Dire Wolf(区间DP)

    渐渐认识到区域赛更侧重的是思维及基本算法的灵活运用,而不是算法的量(仅个人见解),接下来要更多侧重思维训练了. 区间DP,dp[i][j]表示从i到j最终剩余第i 与第j只的最小伤害值,设置0与n+1 ...

  9. POJ3321 Apple Tree(树状数组)

    先做一次dfs求得每个节点为根的子树在树状数组中编号的起始值和结束值,再树状数组做区间查询 与单点更新. #include<cstdio> #include<iostream> ...

  10. 使用 Log4Net 记录日志

    第一步:下载Log4Net 下载地址:http://logging.apache.org/log4net/download_log4net.cgi 把下载的  log4net-1.2.11-bin-n ...