Visual Studio是蝙蝠车,LINQPad是兰博基尼?这个比喻很秒

                                                                             此篇转发自港澳台LINQPad用户PETER的文章

对于.NET的工程师来说最幸福的就是我们有史上最强大的IDE:Visual Studio,随便你要上山还是下海,用着Visual Studio就像是开着蝙蝠车一样横行天下。

But!强大如Visual Studio也是有缺点的,例如说摩天布鲁斯要去公司露个脸,总不能开着蝙蝠车去吧。这时在车库里的兰博基尼就排上用场了,这台兰博基尼就是我们本篇的主角LINQPad。

本篇目标:

介绍LINQPad的以下主題:

  • 用途
  • 安装
  • 界面
  • 用法: Expression、Statement(s)及Program
  • 引入参考
  • 与资料库连线
  • Extension Methods
  • 小诀窍

用途

如上所述,LINQPad之于Visual Studio就像是跑车之于战车一样,Visual Studio的功能强大,要做任何事情都难不倒它,但缺点就是太笨重了,消耗的资源太多,如果我们只是要做一些程式片段的验证测试或是学习还要开启Visual Studio然后创建专案,光是想到就会让人却步,这时候LINQPad就派上用场了,它有下列的优点:

  • 它很轻盈(15MB)
  • 有Portalble版本不用安装可以带着走,想在哪写就在哪写
  • 可以不用建立专案甚至不用写Class,只要写你想要测试的程式码即可(Expression、Statement)
  • 可以把程式码片段(code snippet)存起来当作范例使用

接下来我们来看看要怎么使用LINQPad吧。

安装

请至

LINQPad有付费版本,个人觉得付费版本很实用的功能有:

  • 自动完成
  • 跟NuGet整合
  • Debugger

介面

介面分为四个部分:

  • 伺服器连线浏览
  • 片段浏览器
  • 程式撰写
  • 执行结果
    • Result: 查询结果(LINQPad提供Dump来得到较好的显示品质)
    • Lambda: LINQ转为LINQ Method后的程式
    • SQL: LINQ转出的SQL Query

对介面有初步的认识后我们就来用LINQPad写一些程式吧。

用法

对于C#,LINQPad有三种编写方式:

  • Expression 单行程式或是单个LINQ陈述式
  • Statement(s) 多行的程式片段
  • Program需要撰写Class或是Method时

Expression

  • 使用场景 练某个刚认识的Method时或是要以LINQ取得想要的资料时....等
  • 使用方式;以单行程式码的方式撰写,最后不用加分号(;)
  • 范例
  1. 想要输出期望的日期格式时(LINQPad as a Code Scratchpad))

可以看到Result直接输出结果,在测试或学习Method时很好用。

  1. 以LINQ查询一段句子的每个字的长度时(范例取自LINQPad>Samples>LINQPad Tutorial & Reference>5-minute induction>A simple query expression)

就算是分成多行,只要还是一个陈述式就算是Expression。对于要找出期望的资料很好用。

Statement(s)

  • 使用场景
  • 使用方式class;
  1. 用多个LINQ查询资料时(范例取自

Program

  • 使用场景 需要演练Method、Function或是Class时
  • 使用方式 跟写Console App一样的方式
  1. 有个Method/Class要做测试时

你没看错!!最外面是不需要再一层Class的,可以直接写所需的程式码,是不是很方便阿。

当然如果你外面还是想要包Class(跟正规的程式相同)的话也可以,请参考

引入参考

在LINQPad上如果有需要引入参考的话有两个方式:

  • 按下F4
  • 在程式撰写的区块按右鍵>References and Properties

进入Query Properties 页面,按下Add...或是Browse...按钮选择需要的参考加到程式中

与资料库连线

在没有LINQPad的帮助下,我们要测试用LINQ抓取的资料库资料是否正确时,我们需要做下面两件事:

  1. 取得连线字串
  2. 开启连线

接着我们才能开始撰写LINQ,这一来一往间就耗掉了许多的时间,这时就该是LINQPad出场的时候了。

设定连线

现在我们要帮LINQ设定好DB的连线方式。

  1. 左上方区块里按下Add connection,跳出的视窗里直接按下next

  1. 2进入下一个页面,这里跟连线SSMS的设定相同,设定好后按下OK(也可以按Test测试连线是否正确)

  1. 3连线完成后就可以在左上的区块看到Database,我们的Northwind出现了

使用资料库资料做LINQ演练

  1. Northwind右鍵>Use in Current Query

2.连线成功后可以看到程式码区块上的Connection变成Northwind

3.接着我们来写个LINQ(此范例为LINQPad>Samples>LINQPad Tutorial & Reference>5-minute induction>What about querying a database!),执行后我们可以看到梦寐以求的资料了!~~

执行SQL语法

有没有想要查询资料库时却不想打开资料库工具呢?这时候LINQPad又可以派上用场了(万能阿~~)。

照着下面的步骤来取得Northwind中单价(UnitPrice)最高的产品(Products):

  1. 新增一个新的Query
  2. Northwind做連線
  3. 在Language中选择SQL
  4. 输入下面的SQL:

上述的范例如果还看不过瘾的话,在LINQPad>Samples>LINQPad Tutorial & Reference>5-minute induction>But I don't have NORTHWIND!中展示了Create TableInsert Data的演练,可以参考一下。

Extension Methods

有时候我们会想要写个可以在全部的程式码片段使用的通用Method,这时LINQPad的Extension Method就派上用场了,在MyExtensions這個Class中撰写Method就可以在每個程式碼片段中做使用(就像是LINQPad內建的Dump一样)。

  1. 在左下的区块中的MyExtensions的Tab>My Extensions,程式码区块会出現MyExtensions的Class

2接着我们来加入Hello 到MyExtensions 中

  1. 3新开一个Query执行Method,会输出Hello字串

  1. 4现在我们再加一个ConsoleWriteLine

  1. 5在刚刚的Query中呼叫ConsoleWriteLine,最后就会像下图一样

Extension Methods的好处在于你可以扩充自己的Infrastructure,来缩减每个程式码片段重复的处理。

小诀窍

储存可参考的程式码片段

有时候我们会常常参考某些好用的程式码,这时就会想要找个地方存起来等要的时候再拿出来。

在LINQPad中有储存程式码片段的功能:

  1. 在要储存的片段的Tab上按右鍵>Save(或ctrl+s)
  2. 储存后在左下角MyQueries就会看到刚刚储存的档案了。

快捷键表

Help>Keyboard/Mouse Shortcuts

执行选取的程式码

选取想要执行的片段按下執行F5就可以执行片段程式码

LINQPad extension methods

LINQPad自己有提供Dump,让开发者可以产出更清楚的结果,关于Dump的详细说明可以参考作者自己在StackOverflow的回答: LINQPad [extension] methods

结论

LINQPad是一个麻雀虽小,五脏俱全的开发工具,在这个章节中我们学到了如何运用这功能强大的工具,下个章节我们要来寻foreach中隐藏的秘密哦!

LINQPad 已经推出全新的中文网站www.linqpad.cn, 以及微信公众号。请关注,及时掌握最新资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值