日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LINQtoSQL查詢分析

在向大家詳細(xì)介紹LINQ to SQL查詢之前,首先讓大家了解下LINQ to SQL查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后全面介紹LINQ to SQL查詢。

LINQ to SQL查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)

1. 雖然數(shù)據(jù)連接已經(jīng)被確定并建立,但事實(shí)上,在一個(gè)查詢被執(zhí)行之前,沒(méi)有任何數(shù)據(jù)會(huì)被接收。這被稱為 lazy(遲緩的)加載或者是 deferred evaluation.(延遲執(zhí)行),它們?cè)诖蟛糠謭?chǎng)景中將提高效率。下面代碼所包含的查詢將尋找倫敦的客戶:

 
 
 
  1. Sub Main()
  2. '使用標(biāo)準(zhǔn)的數(shù)據(jù)連接字符串
  3. Dim db As DataContext
  4. db = New DataContext("Data Source=."sqlexpress; Initial Catalog=Northwind")
  5. '獲取一個(gè)用于進(jìn)行強(qiáng)類型查詢的 Table 對(duì)象
  6. Dim Customers As Table(Of Customer)
  7. Customers = db.GetTable(Of Customer)()
  8. '將包含具體 SQL 的,LINQ to SQL 生成的日志顯示到控制臺(tái)窗口
  9. '這僅僅用于調(diào)試或理解Linq to Sql是如何工作的
  10. db.Log = Console.Out
  11. '查詢倫敦的客戶
  12. Dim custs = From customer In Customers _
  13. Where customer.City = "London" _
  14. Select customer
  15. End Sub

這個(gè)LINQ to SQL查詢將返回所有來(lái)自倫敦的定義于 Customers 表中的客戶。它被定義為查詢表達(dá)式語(yǔ)法,編譯器將把它編譯為清晰的方法調(diào)用語(yǔ)法。同時(shí)請(qǐng)注意到,custs 集合的類型并沒(méi)有被定義,這是一個(gè)非常便利的 Visual Basic 9.0 特性,它將允許你依靠編譯器推斷集合數(shù)據(jù)類型。特別是當(dāng)查詢將返回一個(gè)復(fù)合的多屬性類型時(shí),這將是一個(gè)尤其有用的特性,編譯器將自動(dòng)推斷實(shí)際的類型而不需要額外的定義操作。

2. 增加下列代碼以執(zhí)行并輸出結(jié)果:

 
 
 
  1. Sub Main()
  2. '使用標(biāo)準(zhǔn)的數(shù)據(jù)連接字符串
  3. Dim db As DataContext
  4. db = New DataContext("Data Source=."sqlexpress; Initial Catalog=Northwind")
  5. '獲取一個(gè)用于進(jìn)行強(qiáng)類型查詢的 Table 對(duì)象
  6. Dim Customers As Table(Of Customer)
  7. Customers = db.GetTable(Of Customer)()
  8. '將包含具體 SQL 的,LINQ to SQL 生成的日志顯示到控制臺(tái)窗口
  9. '這僅僅用于調(diào)試或理解Linq to Sql 是如何工作的
  10. db.Log = Console.Out
  11. 'Query for customers in London
  12. Dim custs = From customer In Customers _
  13. Where customer.City = "London" _
  14. Select customer
  15. For Each cust In custs
  16. Console.WriteLine("ID={0}, City={1}", cust.CustomerID, cust.City)
  17. Next
  18. Console.ReadLine()
  19. End Sub

這些LINQ to SQL查詢將僅僅在代碼需要獲取實(shí)際數(shù)據(jù)時(shí)才被執(zhí)行。在那一時(shí)刻,一條相應(yīng)的 SQL 命令被執(zhí)行并且建立了相應(yīng)的對(duì)象。這個(gè)概念被稱之為“延遲執(zhí)行”,它使查詢能夠冷靜地評(píng)估并僅當(dāng)需要結(jié)果的情況下才執(zhí)行 SQL 命令——當(dāng)即執(zhí)行將有大量的往返損耗與不必要的對(duì)象化開(kāi)銷。

3. 按下F5以調(diào)試整個(gè)解決方案

4. 按下 ENTER,退出該程序。

調(diào)用 Console.ReadLine 方法的目的是防止控制臺(tái)窗口在執(zhí)行完畢后立即消失。在以后的步驟中,這一步并不一定都需要。

你將會(huì)看到像這個(gè)窗口一樣的控制臺(tái)窗口:
屏幕上的第一個(gè)部分展示了 Linq 生成并發(fā)送 SQL 命令到數(shù)據(jù)庫(kù)的全過(guò)程。緊接著,你可以看到我們的查詢返回的數(shù)據(jù)。需要注意的是,從數(shù)據(jù)庫(kù)中接收的行將被轉(zhuǎn)換為“真正的” CLR 對(duì)象,這將在調(diào)試器中被證實(shí)。


網(wǎng)頁(yè)題目:LINQtoSQL查詢分析
URL分享:http://m.5511xx.com/article/dpsgiho.html