顯示具有 LINQ 標籤的文章。 顯示所有文章
顯示具有 LINQ 標籤的文章。 顯示所有文章

2015年6月29日 星期一

LINQPad 5 Beta 新增功能

LINQPad 的好用以及它是 .NET 開發人員必備的工具,這些我想就不用一再地強調,如果你還真的不知道為何 LINQPad 是如此必須的話,請參考這部落格裡有關 LINQPad 的文章。

另外不要只是用著免費版的 LINQPad 然後跟我靠北說很難用,已經再三強調免費版給你基本的功能,但是要能夠發揮其最大的效用就必須購買使用付費版。另外也要說,不要想著去找破解版,身為一個資訊開發人員,請先尊重別人的專業與智慧財產,使用者付費的觀念要落實,學會尊重別人的專業,才能讓別人也尊重你的專業。

再過不久 LINQPad 5.0 將會推出正式版,其實目前 5.0 Beta 也已經發佈一段時間了,所以想要嘗鮮的朋友可以前往 LINQPad 的官網下載,雖然 LINQPad 5.0 的新功能裡有幾項是比較引人注意的,就來看看有哪些新改變。

 


2015年1月19日 星期一

EF Code First - 多對多關係 - 取得擁有指定系統角色的所有系統使用者

這一篇所使用的範例程式將會延續之前文章所使用的程式內容:

ASP.NET MVC 使用 Entity Framework Code First - 基礎入門
ASP.NET MVC 使用 Entity Framework Code First - 變更多對多關聯資料
ASP.NET MVC 實做具有多個角色權限的登入功能

另外文章裡將會使用到「devart LINQ Insight」這個工具,之前也曾經有寫文章介紹過:

LINQ 工具 - devart LINQ Insight

對於一直習慣操作資料庫 T-SQL 語法來存取資料的開發人員來說,因為在開發系統時,對於程式裡需要什麼樣的資料都會使用 T-SQL 語法組合出查詢指令碼然後放到程式裡,最後就是直接使用 ADO.NET 去取得想要的資料,但是對於要轉用 EF 去使用 LINQ 下查詢,在各個物件關聯裡去取得想要的資料,很多人就會有相當大的觀念衝突出現,尤其是這種多對多的資料查詢與取得,就會讓許多人卡很久。

在這篇文章作簡單的說明,如何在多對多關係裡去取得擁有指定系統角色的所有系統使用者資料。

 


2014年7月9日 星期三

.NET Fiddle Chrome Ext with MSDN LINQ Sample

在「使用 .NET Fiddle 來練習 LINQ 語法操作」這一篇為大家說明可以使用 .NET Fiddle 來練習 LINQ,然後「.NET Fiddle Chrome Extension with MSDN Sample Code」這一篇則是向大家說明可以使用 .NET Fiddle 所提供的 Chrome Extension,使用 Chrome 瀏覽器到 MSDN Library 裡看到 Smaple Code 時就使用擴充功能讓指定的 Smaple Code 馬上(要等個幾秒)轉為 .NET Fiddle Embed 並且執行然後顯示結果,甚至可以在 Embed 裡進行編輯與改寫程式,真正達到練習的效果。

既然可以這麼做,那麼也可以利用 MSDN Library 裡面所提供的 LINQ Sample Code 來做為 LINQ 入門學習的練習,這一篇就稍微整理了 MSDN 裡面有關 LINQ 的相關類別與方法說明,都是包含有 Sample Code,這樣就可以使用 .NET Fiddle Chrome Ext 來跟著實際動手做練習。

 


2014年7月7日 星期一

使用 .NET Fiddle 來練習 LINQ 語法操作

在介紹 LINQ 的時候,我一定會推薦大家可以使用 LINQPad 來做為練習的工具,我也有多篇文章是在說明如何使用 LINQPad,

LINQPad - 好用到爆炸、.NET開發人員必備的好用工具
Oracle ODAC 11.2 Release 4 (11.2.0.3.0) - Includes support for Entity Framework and LINQ
LINQPad + Oracle ODAC for Entity Framework
看看 LINQPad ( v2.41.2 / v4.41.2 ) 更新了什麼
LINQPad v4.42.05 Beta 介紹
LINQPad - IQ Driver - for MySQL, SQLite, Oracle
LINQ 與 Access - 使用 LINQPad

LINQPad 有免費版也有付費版本,免費版就已經相當好用,而且有絕大部分的主要功能,所以一直推薦大家要練習或測試 LINQ 操作的時候可以使用 LINQPad,但是對於 LINQ 入門新手來說,基本的 LINQ 方法不是很熟悉,更何況是比較進階一些的操作,而 LINQPad 免費版與付費版最大的一個差異就是「Intellisense」,對於新手來說,有「Intellisense」總是比較方便一些,所以我一直鼓勵 LINQ 入門新手使用 LINQPad 來練習,但是沒有 Intellisense 的情況下,新手用個幾次之後還是寧願開啟 Visual Studio 來練習。

前一陣子開始會使用線上工具「.NET Fiddle」,部落格裡也有文章用了 .NET Fiddle 將程式實作與結果即時顯示給大家,而且在 .NET Fiddle 裡面編輯程式的時候還會顯示方法提示,於是這就讓我想到,.NET Fiddle 也是個相當適合 LINQ 入門新手用來練習 LINQ 操作的一個好工具。

 


2014年6月18日 星期三

LINQ 工具 - devart LINQ Insight

LINQ Insight 這個工具在 2012 年發布之後就已經有在關注,只不過一開始的功能並不是很好用,而且沒有讓我感覺到能帶給我在開發上有任何太大的幫助,所以最後就沒有用在開發上。

不久前閒晃到 devart 網站,我一直有使用 SQL Complete 與 Code Compare 這兩個工具,所以有時會上去下載新版的更新檔案,然後就發現到 LINQ Insight 已經更新到 3.2 版,而且介面與功能有了一些改變,於是就下載試用版來試試看,在試用過之後,雖然 LINQ Insight 還是有部份功能無法達成的情況,但整體來說是個不錯的輔助開發工具,這邊就向大家做個簡單的介紹。

 


2014年4月25日 星期五

練習題 - LINQ Multi Columns Dynamic Group

前一篇文章「練習題 - LINQ Single Column Dynamic Group」練習了各種動態單一欄位的 Group 操作,這一篇則是要來練習動態多欄位的 Group 操作。

使用環境:VS2013, ASP.NET MVC 5, EntityFramework 6.1.0

使用資料庫:Northwind


2014年4月22日 星期二

練習題 - LINQ Single Column Dynamic Group

這一次要練習的題目是怎麼作到動態選擇欄位做 LINQ 的 Group 操作,其實很少遇到需要在 LINQ 裡做動態 Group 的需求,所以就當做練習題目來練練看。

使用環境:VS2013, ASP.NET MVC 5, EntityFramework 6.1.0

使用資料庫:Northwind


2014年4月20日 星期日

練習題 - LINQ Contains 操作與 ArrayList

很少在程式裡使用到 ArrayList 這個類別,所以一時間還沒有馬上意會過來,所以查了一下 MSDN 上面的說明:

MSDN - ArrayList 類別 (System.Collections)

這個類別有實作 IList 介面,而且使用大小會視需要而動態增加的陣列。

但如果我們要操作一段 LINQ 查詢,所使用的條件值是 ArrayList 而且輸出的結果也需要是 ArrayList 時,應該怎麼處理呢?

就來練習看看吧!


2014年3月19日 星期三

LINQ 與 Access - ASP.NET MVC 專案使用 LINQ to Access 的 LinqToDB.Templates

前面的文章介紹了 Linq To Access 這個套件,但並非使用它所提供的 T4 Templates 來建立 Data Context,而這一篇文章裡將會以 ASP.NET MVC 專案裡如何使用 LinqToDB.Templates 來做說明。

 


2014年3月18日 星期二

LINQ 與 Access - 使用 LINQ to Access

習慣使用 Entity Framework 之後,幾乎專案的開發都不會使用其他的資料存取方式,而之前的文章說過 Entity Framework 並不支援 Access,所以才會使用 Typed DataSet 來存取 Access,但還是覺得一定有什麼方式是近似於我平常習慣的開發方式,後來我找到了 LINQ to Access 這個套件,而且使用起來還算簡單,畢竟使用 Access 作為資料儲存媒體的專案並不會有太複雜的操作,可以做為解決方案,而且其底層 LINQ to DB 還有實做各種資料庫的 Data Provider,大家有時間的話可以玩玩看。

P.S.
LINQ to Access 與 LINQ to SQL 或是 ADO.NET Entity Framework 並沒有直接關係,所以不要以為 LINQ to Access 是 LINQ to SQL 或 EntityFramework 的擴充,與 Oracle ODAC for EntityFramework  之於 EF 是不一樣。

 


2014年3月17日 星期一

LINQ 與 Access - 使用 LINQPad

我一直都推薦 LINQPad 做為練習或是開發測試 LINQ 的工具,因為不必開啟 Visual Studio,也不必在 Visual Studio 寫完 LINQ Expression 之後按下「F5」開始偵錯後才能看到剛才寫的 LINQ Expression 是否正確或是是否取得預期結果。

但是我們可以在 LINQPad 裡對資料來源為 Access 做 LINQ 操作嗎?

 


2014年3月16日 星期日

LINQ 與 Access - 使用 Typed DataSet

怎麼在專案裡對 Access 為來源的資料使用 LINQ 操作呢?

Entity Framework 與 LINQ to SQL 不支援 Access,Telerik Data Access (之前叫做 Open Access ORM) 也不支援,如果不尋求 Third Party 支援的話,其實還是可以使用強型別 DataSet (資料集),強型別 DataSet 就可以直接將 Access 裡的 Table 拉進去使用,不過我很少使用 Typed DataSet,所以我還是希望可以有其他的方式來解決,不過這一篇就當作練習,練習怎麼使用 Typed DataSet。

 


2013年10月12日 星期六

ASP.NET MVC 使用 jQuery EasyUI DataGrid - 多欄排序 (Multiple Column Sorting) Part.3

在「ASP.NET MVC 使用 jQuery EasyUI DataGrid - 多欄排序 (Multiple Column Sorting) Part.1」裡我們選擇不使用 Dynamic Expression API 來處理多欄位排序的操作,並不是說 Dynamic Expression API 不能做多重排序,而是我們應該先以 LINQ 本身所提供的方法來做解決,並藉此多加了解 LINQ 的 OrderBy, ThenBy, IOrderedQueryable<T> 等這些 LINQ 的基本操作方法。

而這一篇則是補充說明怎麼使用 Dynamic Expression API 來完成多欄位排序的操作。

 


2013年10月11日 星期五

ASP.NET MVC 使用 jQuery EasyUI DataGrid - 多欄排序 (Multiple Column Sorting) Part.2

前一篇「ASP.NET MVC 使用 jQuery EasyUI DataGrid - 多欄排序 (Multiple Column Sorting) Part.1」已經完成了多欄排序的伺服器端的程式內容,不過還是有修改的空間,所以這篇文章就接續完成需要修改的部份。

 


2013年10月10日 星期四

ASP.NET MVC 使用 jQuery EasyUI DataGrid - 多欄排序 (Multiple Column Sorting) Part.1

上一篇「ASP.NET MVC 使用 jQUery EasyUI DataGrid - 排序 (Sorting)」說明了如何讓 DataGrid 加入資料排序的功能,而 jQuery EasyUI 1.3.4 有提供了一個新的屬性「multiSort」,這個屬性可以讓 DataGrid 有多欄排序的功能,之前的排序都是針對某一個欄位做排序顯示,而多欄排序是可以同時選擇多個不同欄位,而且欄位的排序順序可以不同,這一篇文章就來說明要如何處理多欄排序的操作。

 


2013年10月9日 星期三

ASP.NET MVC 使用 jQuery EasyUI DataGrid - 排序 (Sorting)

經過兩篇的說明之後,現在我們繼續往進階一點的功能前進,這一篇將會說明到如何處理 DataGrid 的排序功能,另外會用到之前曾經介紹過的 Dynamic LINQ ( Dynamic Expression API )。

 


2013年3月28日 星期四

LINQPad - IQ Driver - for MySQL, SQLite, Oracle

LINQPad 相當好用,我已經用了很多篇文章來說明 LINQPad 的使用,一般使用 MS SQL 或 MS SQL Express 的開發人員通常在 LINQPad 裡是比較不會感覺到不便,一旦當你開發的專案是使用非 MS SQL 的資料庫時,通常在開發機裡有安裝了相對應的 Data Provider 之後就不會有無法在 LINQPad 裡使用的問題,但如果再一台沒有安裝相對應 Data Provider 的時候,就無法在 LINQPad 裡去對這些資料庫進行 LINQ 查詢操作了。

不過這個問題之前就有了解決的方式,可以讓我們不必安裝相對應的 Data Provider 的情況下還是可以在 LINQPad 裡進行查詢操作。

 


2013年2月1日 星期五

Entity Framework 5 - 取得 Entity 的 Property Names 與 KeyMembers

當專案使用 Entity Framework 4 的時候,使用我之前介紹過的方法都是可行的,例如:

取得 Entity Framework 中 Entity 的主鍵成員名稱(KeyMember)
取得 Entity Framework 中 Entity 對應 Table 的原生 Column Name

而當專案使用 Entity Framework 5 之後就會發現到這些方法全都不行了,既然都不能用了就想辦法解決,只是這次就真的像破頭了,像我都是使用 Database First 的方式來建立 Entity Model,所以當我一開始想要用之前的方法在加上反射的方式來試著找出我想要的資料時,發現到 EF5 所建立的 EDMX 已經是大大不同了,這篇文章就說明如何在使用 EF5 的情況下找出 Entity 的 Property Names 與 KeyMembers。

 


2012年12月23日 星期日

觀察 ADO.NET Entity Framework 5.0 產生的 SQL Command 與取得 Entity 對應的 Table Name

這篇的文章標題蠻長的,其實這與以前的兩篇文章是有關連的,

觀察 Entity Framework 轉換所產出的 SQL Command

動態取得 Entity Framework 中 Entity 對應的 TableName

這兩篇文章都是以使用 ADO.NET Entity Framework 4.0 以及 .NET 4.0 為背景,不過換成 ADO.NET Entity Framework 5.0 與 .NET 4.5 的使用情境下就會有所不同了,那兩篇文章內所說的方法就行不通,所以就必須要換另外的方式來完成需求。


2012年7月2日 星期一

LINQPad v4.42.05 Beta 介紹

 

其實目前 LINQPad 的版號雖然不是上次介紹時的 v2.41.2 / v4.41.2,版本已經更新到「v2.42.01 / v4.42.01」

image

之前介紹有關 LINQPad 的文章「看看 LINQPad ( v2.41.2 / v4.41.2 ) 更新了什麼

那既然還沒有更新版本,又為何還要介紹 LINQPad 呢?可以注意文章標題,標題是「LINQPad v4.42.05 Beta

今天收到 LINQPad 所發出的 News Email,看到 Beta 有更新了幾個不錯的功能,所以就跟各位報告!

 

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。