自從.NET Framework 3.0 發佈LINQ(音同 Link)之後,對於程式開發人員於專案中的資料庫操作或是集合物件的操作,都有了很大的變化,不論是使用LINQ to SQL 或是 ADO.NET Entity Framework還是對於集合物件的資料查詢、彙整等操作,都可以使用一致性的查詢方式來操作資料。
然而並不是每個.NET開發人員對於LINQ是那麼的熟悉,我從2007年開始接觸LINQ後,至今已經也差不多快四年了,也還是會在周遭聽到或看到:
- 沒有用過(這位工程師的桌上還擺了好幾本.NET 4.0, 3.5的書!?)
- 甚至有的工程師只有看過而從來沒有用過(這很令人匪夷所思…都出來這麼多年,也該找個時間好好認識呀)
- 更有的工程師甚至認為LINQ只是用來取代原本的ADO.NET(這是什麼觀念呀?!)
- 而更多的開發人員最感到不便的就是要練習LINQ還需要大費周章的開啟Visual Studio然後寫程式後再按F5看結果,因為這樣所以不想認識LINQ(這腦袋不知怎麼想的…)
如果有個方便的工具可以拿來練習LINQ的話,或許對於LINQ可以認識更多。
如果在專案開發時,不用頻繁的F5執行程式看結果,而是可以在工具裡去下LINQ語法然後立即驗證的話,可以使開發更加的便利。
不用再找了!LINQPad就是這樣的一個好用到爆炸、.NET開發人員必備的好用工具。
LINQPad
這一套工具為免費的,而且有分為安裝版以及免安裝版,免安裝版就是下載下來之後就可以立即執行使用,不過前提是,你的環境必須要安裝 .NET Framework 3.5或是4.0,雖然說免費的已經很好用了,但是付費的版本更是好用到讓人驚訝不已,付費有兩種版本,一種是Pro而另一種是Premium,兩種版本都有的功能是:autocompletion, smart tags, code outlining, and .NET Reflector integration.
(自動完成,智能標籤,代碼概述,和。NET反射的整合。)
但是Premium版本則還有提供code snippets以及可在MS SQL Server中去執行跨多個資料庫查詢的操作,而且未來當LINQPad有新增企業應用功能時,Premium版本則可以得到免費的功能升級。
下圖就是付費版所提供的智能顯示功能
另外假如你有使用Chrome瀏覽器,你也可以安裝Chrome的線上應用程式「LINQPad on Roozz」
而安裝後的使用,就跟使用一般版本的LINQPad是完全一樣的,如下圖所示
當我將LINQPad介紹給我的同事使用後,他們也是對它讚不絕口。
我目前專案所使用的資料庫是Oracle,ORM則是使用ADO.NET Entity Framework,在LINQPad裡也是可以正常的使用,除了無法像資料使用MS SQL Server後可以看到轉換的SQL,其他都沒有差別。
下圖為資料庫使用MS SQL Server,下LINQ語法在執行後也可以看到轉換的SQL指令:
這邊對於LINQPad的功能介紹就不多做贅述,以下提供幾位高手對於LINQPad的介紹與教學文章:
Demo - LINQPad 有在用LINQ不可或缺的好工具
Bibby - 用 LinqPad 來使用 Entity Framework
如果說真的對LINQ語法不熟悉,或是對於LINQPad不知道如何使用,在Sample中有提供範例與教學,只要點開就可以執行並且立即查看執行結果。
在Sample中有個「Download more samples…」點擊下去後,會出現以下的視窗:
只要點選「Download ….. into LINQPad」就可以將這些samples給增加到LINQPad之中,下圖就是新增加了「LINQ in Action」的範例教學。
另外在「DeVCURRY - 50 LINQ Examples Now in LINQPad」這篇文章中,作者很佛心的將以往所發表的「dotnet Curry - 50 LINQ Examples, Tips and How To's」提供的50個LINQ範例教學整理成一個壓縮檔,只要在LINQPad中去指定壓縮檔的URL後,就可以將範例教學給新增到Sample中。
壓縮檔下載URL:http://www.dotnetcurry.com/Uploads/linq/LinqQueries.zip
一樣是點選LINQPad - Samples的「Download more samples…」,在下方的輸入框中填入上面的網址。
新增完成
有了這些範例,就可以立即執行查看結果,這樣一來,學習LINQ也可以相當容易與方便了。
除了下LINQ語法之外,LINQPad還是我時常用來測試程式片段的工具,在Language去選擇「C# Program」,就可以在 main() 的範圍中去測試程式片段,不過要注意的是,將結果輸出是要用 Dump() 方法。
就介紹到此,LINQPad真的是個好用到爆炸的工具,不用去開啟龐大的Visual Studio就可以執行LINQ與程式,然後馬上看結果。雖然說免費版的也具備了大部分的功能,但是缺少了智能顯示這個重要的功能,就會覺得整體操作並不是那麼的方便好用,所以我強烈建議可以購買Pro版或是Premium版,價錢上並不是相當昂貴,而是相當實惠的價格,就當做是贊助作者,讓作者可以繼續開發更好更完整的版本。
http://www.linqpad.net/Purchase.aspx
Pro版目前的售價為美金39元,Premium版原售價是美金79元,但是有時會碰到促銷折扣,像現在(2011-09-14)就只要美金58元。購買後會給一組序號,這個序號可以提供給三台有安裝LINQPad的電腦以及三台虛擬電腦使用,所以會建議湊齊三個人然後去購買一組授權,以Pro版來說,一個人也才花費美金13元(約NTD 400元)
以上!
您好,我想請問的是我查詢出的結果中文都是亂碼,LinqPad的版本是Free Edition V4.57.02
回覆刪除在Preference中找不到相關的字元編碼設定,請問免費的LinqPad是否有相關的設定,謝謝
Hello,
刪除這無關 LINQPad 的問題,也並非是否使用免費或付費版本的問題,
應該是要看你資料庫的欄位型別與定序的設定,
因為我並沒有遇到這樣的問題,所以就沒有特別去注意,
根本的解決方法就是去修改欄位型別(例如原本是 varchar 改為 NVARCHAR),或是修改欄位的定序。
我也有這個問題!不過我嘗試在連線字串加上 "charset=utf8" 就正常了 (mysql),可以試試看
刪除作者已經移除這則留言。
回覆刪除LINQPad只能單向LINQ轉SQL, 有沒有SQL轉LINQ(free的版本)?
回覆刪除SQL轉LINQ ... 那是沒意義的
刪除有這東西,在多年以前是曾經有過,但是要錢
要先搞懂為何 LINQ 語法可以轉換成 SQL Script,再了解兩者的不同
如果真有好用的 SQL to LINQ 的工具,為何不曾聽過有人去討論與推薦呢?
實際用過LINQpad後有種相見恨晚的感覺
回覆刪除要試一段程式不用再開一個console專案或是找線上coding網站
要串SQL試撈資料不用再開SSMS
這算是少數我用了就想直接付費的開發工具
不過過了8年LINQpad的定價好像改了
除了Pro跟Premium漲價外,又多了個Developer版
我不太確定要買Developer版就好還是直上Premium版
因為我不知道Premium多出的Override跟Debugger功能在平常開發中是否會常常用到
以現在 2019-03 的定價來看
刪除DEVELOPER $79
PREMIUM $95
大概差 $16 大約新台幣 492 元 (就以 500 元來看)
要不要那些增加的功能就看平常拿 LINQPad 來做什麼用途、使用的頻率有多少來看
以我來說,現在開啟 LINQPad 的頻率已經不如寫這篇文章的時候(2011年)
但現在用 LINQPad 時還是不時會用到中斷點功能
LINQPad 大版本的更新不是常常在更迭,每個版本都能用很久(LINQPad 不是按年收費,一個版本收一次費用)
500 元的價差,對我而言是有實際的價值
至於 override 功能,我就很少用到