程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 【十天學會Linq to sql】第一天—–基礎知識

【十天學會Linq to sql】第一天—–基礎知識

編輯:C#入門知識

目錄

【十天學會Linq to sql】第一天—–基礎知識

【十天學會Linq to sql】第二天—–數據上下文

【十天學會Linq to sql】第三天—–數據查詢

【十天學會Linq to sql】第四天—–數據更新

【十天學會Linq to sql】第六天——存儲過程

No.1、什麼是Linq to sql??

一般在學習新東西之前,肯定要了解一下學的是什麼東西,有什麼用,下面是來自【百度百科】的資料;

LINQ TO SQL 是包含在.NET Framework 3.5 版中的一種 O/RM 組件(對象關系映射),O/RM 允許你使用 .NET 的類來對關系數據庫進行建模。然後,你可以使用LINQ對數據庫中的數據進行查詢、更新、添加、刪除。 LINQ TO SQL 提供了對事務、視圖、存儲過程的完全支持。它同樣為集成數據校驗和業務層邏輯到你的數據模型中提供了一種簡單的實現方式。 在 LINQ to SQL 中,關系數據庫的數據模型映射到用開發人員所用的編程語言表示的對象模型。 當應用程序運行時,LINQ to SQL 會將對象模型中的語言集成查詢轉換為 SQL,然後將它們發送到數據庫進行執行。當數據庫返回結果時,LINQ to SQL 會將它們轉換回您可以用您自己的編程語言處理的對象。

看完理解了嗎?不理解沒關系,可以在接下來的教程裡面慢慢學習理解。

 


No.2、隱含類型局部變量

 

 Age =  UserName=  Userlist =  [] {,,};

 

"var"這個詞很熟悉,javascript中經常用到(語言都是有相通的東西的,特別是高級語言),當然C#中var和javascript的var差別還是比較大。

1、只能作為局部變量。也就是說,var只能定義在方法、循環、等語句裡面;

2、var可以聲明任何類型的變量,可以根據後面的初始化數據來判斷他是什麼類型,無須顯式定義類型。(是不是跟object很像,只不過var是強類型);

 UserData =  {Username = ,Age = };

3、var聲明時必須使用表達式初始化;(就像自己老婆生孩子,生出來了總要知道是男孩還是女孩吧!)

      也就是必須定義成 var i=0; 沒有初始化編譯會報錯,而且初始化值不能為null,編譯器無法根據null來推斷出局部變量的類型;初始值除了int,string等數據類型外,還可以使用new 一個對象作為初始值(從網上大家發表的看法,var使用最多的就是配合一個匿名類型的對象來使用,以及在Linq中使用);

      //下面是網上某個網友寫得博客,拷貝修改了一下!

     配合匿名類型使用:

 a = { Name =  ,Age =

    在linq中應用:

[] numbers = { , , , , , , , , ,  queryLowNums =
     num  num < 
     ( s +  

4、注意事項

      一般var不要像“var i=9;”這樣使用,程序可讀性不高;

      在匿名類型中使用比較方便;foreach中使用也不錯;

      var只是語言層面的東西,編譯器會在編譯的時候通過類型推斷把它換成真正的類型。

 


No.3、Lambda表達式

 

隨VS 2005發布的C#2.0引進了匿名方法的概念,允許在預期代理(delegate)值的地方用“行內(in-line)”代碼塊(code blocks)來做替代。

Lambda表達式為編寫匿名方法提供了更簡明的函數式的句法,但結果卻在編寫LINQ查詢表達式時變得極其有用,因為它們提供了一個非常緊湊的而且類安全的方式來編寫可以當作參數來傳遞,在以後作運算的函數。

    Lambda表達式實際上是一個匿名函數。它包含表達式和語句,常用於創建委托或表達式目錄樹類型。所有Lambda表達式都是用Lambda運算符---------- =>,該運算符讀為“goesto”。Lambda運算符的左邊是輸入參數(可能沒有),右邊是表達式或語句塊。Lambda表達式返回右邊表達式的結果。

 

  
         List<Student> student =  List<Student> Student{Name=,Age= Student{Name=,Age= Student{Name=,Age=
         IEnumerable<Student> stu = student.Where(s => s.Name ==  
  
    Name { ;   Age { ; 

 

   上面高亮標記的紅色 s => 表達式就是Lambda表達式。在上面的例子裡,我用lambda來指定獲取特定學生時所用的過濾條件;

 Lambda表達式暫時就學這些吧,因為我也不知道該怎麼表達我所學的知識;接下來的教程會用到的,我再慢慢解釋吧。


  No.4、查詢語法

      查詢句法是使用標准的LINQ查詢運算符來表達查詢時一個方便的聲明式簡化寫法。該句法能在代碼裡表達查詢時增進可讀性和簡潔性,讀起來容易,也容易讓人寫對。Visual Studio 對查詢句法提供了完整的智能感應和編譯時檢查支持。編譯器在底層把查詢句法的表達式翻譯成明確的方法調用代碼,代碼通過新的擴展方法和Lambda表達式語言特性來實現。

           List<Student> student =  List<Student> Student{Name=,Age= Student{Name=,Age= Student{Name=,Age=
            stu2 =  std  std.Name == 
                      
            stu = student.Where(s => s.Name == );

 

查詢一的查詢語法等價於查詢二;

LINQ查詢句法可以實現90%以上T-SQL的功能(由於T-SQL是基於二維表的,所以LINQ的查詢語法會比T-SQL更簡單和靈活),但是由於智能感應的原因,select不能放在一開始就輸入。

 



寫個教程真心不容易,但是寫過一次之後,才知道自己在那個知識點的不足,可以加深記憶外還能改正自己的缺點,所以不管我寫的好不好,我都會堅持的寫下去。

希望大家可以多多支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved