專案中所運用的LINQ TO SQL總結

2022-02-12 02:31:03 字數 2360 閱讀 8143

linq to sql中的select

1:from 變數名(例如:p) in 表名(例如:customers);

2:多表查詢(例如:from a in orders),即在第乙個from 語法後再來乙個或多少;

3:條件表達示(例如:where p.id>5);

4:分組表示式(例如group p by p.id);

5:排序表示式(例如:orderby p.id);

6:select 要讀取的字段資訊(例如:p.id)。

­說明:

1:1和6是一定要有的,否則會編譯錯誤。

1>:linq to sql中的selectmany

2>:linq to sql 中的join          

3:分組可以引數這篇文章:linq to sql 中的group

下面是最簡單的單錶查詢:接下來我對上面的6個部分的其中幾個部分詳細而簡單的說明下:

­from p in customers

select p

­第一:select的用法,因為關係到最後的查詢結果,所以是開發員最關心的地方。

­1:可以直接是乙個物件,即不指明任何字段,像上面的select p,這相當於讀取p對應表的所有字段,在傳統sql中就是select *的意思,一般實際應用中不推薦這樣做,除非字段特別少而且都是要輸出的內容。

­2:某乙個表的欄位名,例如:select p.id,可以包含乙個以上的字段,而且可以包含不同表的字段,下面的幾種寫法都是正確的:

1>:select p,讀取全部字段;

2>:select p.id,乙個表的乙個字段;

3>:select p.id,p.name,乙個表的多個字段;

4>:select p.id,a.orderid,多個表的多個字段。

­3:可以是乙個指定的物件:

select new students

; 4:可以指定乙個匿名物件:      

select new ; ­

5:欄位和物件不能混合使用,下面的用法都是錯誤的:

select p.id,

select new

; select p.id,

new

; 6:如何進行子查詢,在select表示式中就可以完成。

from c in customers

select new }

7:子查詢時給表加上別名,主要是利用let關鍵字。

from c in customers

let highvalue =

from p in c.purchases

where p.price > 1000

select new

select new

上面的查詢也可以寫成:

­from c in customers    

select new }

第二:select 完成後,就要考慮如何排序了。主要是應用orderby 關鍵字,descending為降序,否則為公升序。      

­from p in purchases

orderby p.price descending, p.description

select p

第三:如何過濾掉重覆記錄,我們可以使用distinct()屬性。

var list6 = (from p in db.customers

select p.id).distinct();

第四:如何實現傳統sql中的in和not in, 我們可以利用contains()來實現。拉姆達表示式支援。

customers.where (c => c.name.contains ("a"))  

第五:如何實現傳統sql中的like表示式:拉姆達表示式支援。

1:customers.where (c => c.name.contains ("a")) ,相當於like '%a%'。

2:分兩種寫法:

1>:customers.where (c => c.name.startswith ("a")),相當於like 'a%'。

2>:customers.where (c => c.name.endswith ("a")),相當於like '%a'。

3>:自己擴充套件乙個like的方法。我會在下面的文章中試試擴充套件linq to sql的方法。

­總結:select操作對於以資料查詢為主的應用程式來說特別重要,了解它的基礎結構,原理後才能寫出高效的應用程式。聽有園友說,linq to sql可能會被拋棄,無論真與否,心中總不是個滋味,但我還是會堅持學習完linq to sql,做事總不能半途而廢。  

注: 文中參考nutshell示例

獲取專案中所有makefile檔案

bin bash 說明在divison目錄下執行,用於獲取所有makefile檔案,結果會按原目錄結構儲存 function back makes find type f name mm ake ff ile for f in maks do find得到的檔案可能是絕對路徑,此時刪頭去尾得到中間路...

刪除專案中所有的 pycache

當第一次執行 python 指令碼時,直譯器會將 py指令碼進行編譯並儲存到 pycache 目錄 下次執行指令碼時,若直譯器發現你的 py指令碼沒有變更,便會跳過編譯一步,直接執行儲存在 pycache 目錄下的 pyc檔案 1 單次關閉 執行指令碼時新增 b引數即可 2 永久關閉 設定環境變數p...

jstl標籤foreach在專案中的運用

在jsp頁面j用的最多的就是用來迴圈遍歷乙個list,話不多說,看 public string updatecontract model model,webrequest request controller層往jsp頁面返回了乙個materiallist的集合,放在了model裡面。解釋一下 it...