C 3 0 入門系列 linq (一)

2021-08-30 19:14:08 字數 1594 閱讀 6911

談到dlinq ,就不得不先說linq 。讓我們先看看什麼是linq 。linq 是language integrated query 的縮寫。那麼事實上dlinq 就是database language integrated query  的縮寫。linq 和dlinq 最大的區別就在與linq 是對記憶體進行操作,而dlinq 的操作物件為資料庫。

我們先來看乙個linq 的例子。在這之前,你需要安裝s2008

beta 2版本。可以到

微軟也提供了好多學習的地方。先給出幾個鏈結。

default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp

好,我們先來看乙個linq 的例子。這個例子可以從linq 的說明文件上得到。

using system;

using system.query;

using system.collections.generic;

static void main() ;

ienumerableexpr = from s in websitenames

where s.length == 22

orderby s

select s.toupper();

foreach (string item in expr)

console.writeline(item);

}}

你可能感覺比較陌生。放心,這大概是第一次看到緣故。在這裡像from  ,where ,orderby, select 等都是linq 的保留字,都該用藍色顯示的,但是好像cnblogs 還沒有開始支援。所以插入**時,他們就被當作普通字元了。

其實,query expression 看起來和sql 語句很像。 比如select * from table1 where column1 = "";

我第一次看到linq 時,就感覺是寫在程式裡的sql 語句。只不過,以前我們都是用string 型別形成乙個sql 語句,然後通過command 或adapter 傳到sql server 中。而現在,感覺就像把sql 語句直接當成程式**來實現。這只不過是我們的乙個錯覺。

這個例子,只不過是從乙個string 的陣列中,提取出長度為22 的,並且把提取的資料全部變成大寫。 ienumerable 使用到了c#2.0 中的泛型。 該列子的結果,返回乙個資料集,存放到expr 中。 在這裡,從那個資料集中取的結果,是用in 表達的,如列所示, from s in websitenames , 在websitenames 集合中,取出s 。s 代表一條條紀錄。where

表示條件,orderby

表示按什麼排序。select

選擇那些字段組成變數。這裡,你可能會覺得奇怪,s 變數在那裡宣告的呢。我第一看到這裡的時候,也感到奇怪。其實s 變數是websitenames  變數裡的元素,你在in

websitenames 時,已經宣告了s 變數。

在這個列子中,大家可以先感受一下linq ,在隨後的章節中,我會為大家介紹更多。對記憶體陣列的查詢,並不能顯示出linq 的強大功能,對資料庫的操作,才使得linq 更加具有實際意義。 在隨後的章節中,我將逐漸介紹dlinq 的語法。

C 3 0 入門系列 linq (二)

在第一篇中,我已經和大家簡單介紹了linq 也和大家提起linq 是c 3.0 裡的乙個特性。不過,你去裝linq priview 時,你會發現,它提供了許多vb 的linq 從現在的情況看,linq 會被移植到.net framework 下。在本篇中,筆者將開始更加詳細的介紹dlinq 同時,也...

C 3 0 入門系列(一)

談到dlinq,就不得不先說linq。讓我們先看看什麼是linq。linq是 language integrated query的縮寫。那麼事實上dlinq就是 database language integrated query 的縮寫。linq和dlinq最大的區別就在與linq是對記憶體進行操...

C 3 0 入門系列(一)

談到dlinq,就不得不先說linq。讓我們先看看什麼是linq。linq是 language integrated query的縮寫。那麼事實上dlinq就是 database language integrated query 的縮寫。linq和dlinq最大的區別就在與linq是對記憶體進行操...