自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LINQ技術(shù)學(xué)習(xí)經(jīng)驗(yàn)

開(kāi)發(fā) 后端
這里介紹LINQ TO SQL是LINQ技術(shù)在數(shù)據(jù)庫(kù)方面的應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)從OLEDB,ODBC到ADO,在到ADO.NET到現(xiàn)在的LINQ TO SQL,讓程序員操作數(shù)據(jù)庫(kù)越來(lái)越簡(jiǎn)單。

LINQ有很多值得學(xué)習(xí)的地方,這里我們主要介紹LINQ技術(shù),包括介紹LINQ TO SQL等方面

LINQ TO SQL是LINQ技術(shù)在數(shù)據(jù)庫(kù)方面的應(yīng)用。數(shù)據(jù)庫(kù)技術(shù)從OLEDB,ODBC到ADO,在到ADO.NET到現(xiàn)在的LINQ TO SQL,讓程序員操作數(shù)據(jù)庫(kù)越來(lái)越簡(jiǎn)單。 LINQ 的宗旨就是讓查詢(xún)無(wú)處不再,這當(dāng)然要包括對(duì)數(shù)據(jù)庫(kù)的查詢(xún)。LINQ技術(shù)不僅僅可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢(xún),同樣CUID(Create,Update,Insert,Delete)都可以實(shí)現(xiàn),而且非常方便。

下面逐一對(duì)查詢(xún)以及增刪改方面進(jìn)行介紹

要想查詢(xún)數(shù)據(jù)庫(kù)中表的數(shù)據(jù),就要先建立對(duì)數(shù)據(jù)庫(kù)表的映射,就像要想使用ADO.NET就需要先把數(shù)據(jù)庫(kù)中的數(shù)據(jù)存到DataSet中,看一下代碼

  1. [Table(Name = "Category")]  
  2. public class Category  
  3. ...{  
  4. [Column(IsPrimaryKey = true)]  
  5. public string CategoryId;  
  6. [Column]  
  7. public string Name;  
  8. [Column]  
  9. public string Descn;  

以上就是對(duì)數(shù)據(jù)表的一個(gè)映射。使用的數(shù)據(jù)庫(kù)是SQL SERVER2000中自帶的數(shù)據(jù)庫(kù)Northwind。其實(shí)寫(xiě)過(guò)C#的人也應(yīng)該能看懂上面的代碼。建立好對(duì)表的映射之后,就可以對(duì)其進(jìn)行相應(yīng)的操作了。

注意這里我們使用手工寫(xiě)數(shù)據(jù)表的映射,其實(shí)MS為我們提供了相應(yīng)的自動(dòng)化工具SqlMetal,大家可以使用這個(gè)工具自動(dòng)產(chǎn)生對(duì)數(shù)據(jù)庫(kù)表映射的代碼,效率比較高,如果自己有什么需要改動(dòng)的地方還可以對(duì)產(chǎn)生的代碼進(jìn)行更改。

下面可以查詢(xún)了

  1. DataContext db = new DataContext("Server=localhost;
    Database=northwind;Trust_connection=true");  
  2. //這里的連接字符串根據(jù)自己的配置進(jìn)行相應(yīng)更改即可  
  3. Table<Category> Categorys = db.GetTable<Category>();  
  4. var result =  
  5. from c in Categorys  
  6. select c;  
  7.  
  8. //大家看到了DataContext就相當(dāng)于ADO.NET中的Connection,但是它提供了更強(qiáng)大功能  
  9. //其中result就相當(dāng)于IEnumerable<Category>如果不知道為什么會(huì)推出這個(gè)來(lái),
    可以參考我原來(lái)寫(xiě)的Lambda表達(dá)式那篇  
  10.  
  11. //下面可以輸出result中的內(nèi)容  
  12. foreach(var c in result)  
  13. Console.WriteLine("CategoryId={0},Name={1},Descn={2}",
    c.CategoryId,c.Name,c.Descn); 

以上就是對(duì)數(shù)據(jù)庫(kù)的查詢(xún),我們可以寫(xiě)出很復(fù)雜的查詢(xún)來(lái),其實(shí)在內(nèi)部,LINQ技術(shù)會(huì)把你寫(xiě)的LINQ語(yǔ)句,轉(zhuǎn)換成SQL語(yǔ)句送到數(shù)據(jù)庫(kù)中去執(zhí)行。然后返回相應(yīng)的結(jié)果。如果大家想看轉(zhuǎn)換后的SQL語(yǔ)句,可以在建立完連接之后加上這樣一句:db.Log=Console.Out。這樣程序?qū)⒆詣?dòng)輸出SQL語(yǔ)句和查詢(xún)結(jié)果.這里只是簡(jiǎn)單的介紹了一下如何查詢(xún),我們知道表與表之間還有關(guān)系,這些復(fù)雜的東西我們以后在詳細(xì)說(shuō)明。

下面再來(lái)看看如何更改

  1. //更改  
  2. string id = “DOGS";  
  3. var cat = db.Categories.Single(c => c. CategoryId == id);  
  4. cat. Name = “New Dogs";  
  5. //添加  
  6. Product p = new Product ...{ …….};  
  7. cat.Products.Add(p);  
  8. //刪除  
  9. string id = “DOGS";  
  10. var cat = db.Categories.Single(c => c. CategoryId == id);  
  11. db.Categories.Remove(cat)  
  12. //提交更改  
  13. db.SubmitChanges();  
  14. //注意, SubmiChanges() 完成了對(duì)象層到數(shù)據(jù)層的更改。
    //也就說(shuō)不進(jìn)行提交,更改的結(jié)果不會(huì)存儲(chǔ)到數(shù)據(jù)庫(kù)中。 

以上只是對(duì)LINQ TO SQL進(jìn)行了簡(jiǎn)單的介紹,其實(shí)它的內(nèi)容還有很多。以后在寫(xiě)LINQ技術(shù)專(zhuān)題的時(shí)候詳細(xì)說(shuō)明。

【編輯推薦】

  1. LINQ to SQL Table淺談
  2. Linq語(yǔ)句問(wèn)題的解決方法
  3. Ling to sql更新實(shí)體概述
  4. Linq實(shí)體繼承簡(jiǎn)單描述
  5. Linq Library概述
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-09-11 12:08:09

Linq to SQL

2009-09-08 15:27:08

Linq Select

2009-09-07 17:09:45

Linq To Sql

2009-09-16 17:13:54

學(xué)習(xí)Linq

2009-09-10 13:54:27

LINQ語(yǔ)法

2009-09-16 17:44:54

LINQ to SQL

2009-09-08 10:57:55

LINQ查詢(xún)操作

2009-09-11 13:29:31

LINQ查詢(xún)操作

2009-09-08 16:02:47

Linq使用Group

2009-09-17 13:54:26

LINQ to XML

2009-08-19 16:36:29

C#管道技術(shù)

2009-09-17 13:30:32

LINQ to XML

2009-09-14 15:15:45

LINQ技術(shù)

2009-09-08 17:57:54

LINQ to Dat

2009-09-15 16:52:19

Linq To Dat

2009-09-09 17:14:17

Linq lambda

2009-09-17 13:38:42

LINQ to XML

2009-09-16 13:02:12

LINQ查詢(xún)子句

2009-09-08 10:35:24

LINQ技術(shù)

2009-09-17 15:51:39

Linq to sql
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)