LINQ技術學習經驗

2021-05-11 14:11:01 字數 2280 閱讀 4265

linq to sql

是linq技術在資料庫方面的應用。資料庫技術從oledb,odbc到ado,在到ado.net到現在的linq to sql,讓程式設計師運算元據庫越來越簡單。linq 的宗旨就是讓查詢無處不再,這當然要包括對資料庫的查詢。linq技術不僅僅可以對資料庫進行查詢,同樣cuid(create,update,insert,delete)都可以實現,而且非常方便。

要想查詢資料庫中表的資料,就要先建立對資料庫表的對映,就像要想使用ado.net就需要先把資料庫中的資料存到dataset中,看一下**: 1.

[table(

name

= "category"

)]  

2.public class category  3. 

以上就是對資料表的乙個對映。使用的資料庫是sql server2000中自帶的資料庫northwind。其實寫過c#的人也應該能看懂上面的**。建立好對錶的對映之後,就可以對其進行相應的操作了。

注意這裡我們使用手工寫資料表的對映,其實ms為我們提供了相應的自動化工具sqlmetal,大家可以使用這個工具自動產生對資料庫表對映的**,效率比較高,如果自己有什麼需要改動的地方還可以對產生的**進行更改。

下面可以查詢了

11.datacontext 

db= 

newdatacontext("

server

=localhost

;database

=northwind

;trust_connection

=true

");  

12.//

這裡的連線字串根據自己的配置進行相應更改即可

13.table

categorys

= db

.gettable();  

14.var 

result

=  15.

from

c in categorys  

16.select c;  

17.//

大家看到了

datacontext

就相當於

ado.net

中的connection

,但是它提供了更強大功能

1.//

下面可以輸出

result

中的內容

2.foreach(var c in result)  

3.console.writeline("

categoryid

=,name

=,descn

=",c.categoryid,c.name,c.descn); 

以上就是對資料庫的查詢,我們可以寫出很複雜的查詢來,其實在內部,linq技術會把你寫的linq語句,轉換成sql語句送到資料庫中去執行。然後返回相應的結果。如果大家想看轉換後的sql語句,可以在建立完連線之後加上這樣一句:db.log=console.out。這樣程式將自動輸出sql語句和查詢結果.這裡只是簡單的介紹了一下如何查詢,我們知道表與表之間還有關係,這些複雜的東西我們以後在詳細說明。

下面再來看看如何更改

4.//

更改5.

string 

id= 「dogs";  

6.var 

cat= 

db.categories.single(

c=>c. 

categoryid

== id);  

7.cat. 

name

= 「new dogs";  

8.//

新增9.

product p= 

newproduct ...;  

10.cat.products.add(p);  

11.//

刪除12.

string 

id= 「dogs";  

13.var 

cat= 

db.categories.single(

c=>c. 

categoryid

== id);  

14.db.categories.remove(cat)  

15.//

提交更改

16.db.submitchanges();  

//注意,

submichanges() 

完成了物件層到資料層的更改。

//也就說不進行提交,更改的結果不會儲存到資料庫中。

LINQ的技術演進

以乙個簡單的例子來說明 var developersusingcsharp from d in developers where d.language c select d.name 1 提供對ienumerable的extension method使得它可以將where,select應用到任意實現...

LINQ技術簡介(整理)

linq技術 解決降低訪問和整合資訊資料的複雜度的問題,即集合訪問技術 linq,語言級整合查詢 languageintegratedquery c 3.0 linq 查詢語法 首先來看乙個很簡單的linq查詢例子,查詢乙個int 陣列中小於5的數字,並按照大小順序排列 class program ...

Linq使用Group By經驗總結

學習linq時,經常會遇到linq使用group by問題,這裡將介紹linq使用group by問題的解決方法。1.計數 var q from p in db.products group p by p.categoryid into g select new 語句描述 linq使用group b...