一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - ASP.NET 語言集成查詢

ASP.NET 語言集成查詢

2023-05-08 03:25未知服務器之家 ASP教程

語言集成查詢 大多數應用都是以數據為中心的,然而大多數的數據倉庫是關系型數據庫。這些年,設計者和開發者設計了基于對象模型的應用程序。 對象來負責連接訪問數據的組件——稱為數據訪問層( DAL )。這里我們需要考慮三

語言集成查詢

大多數應用都是以數據為中心的,然而大多數的數據倉庫是關系型數據庫。這些年,設計者和開發者設計了基于對象模型的應用程序。

對象來負責連接訪問數據的組件——稱為數據訪問層( DAL )。這里我們需要考慮三點:

  • 一個應用程序所需要的所有數據可以不存儲在一個資源中。這個資源可以是關系型數據庫、業務對象、XML文件或者一個WEB服務器。
  • 訪問內存中的對象要比訪問數據庫、XML文件中的數據更簡單,更廉價。
  • 被訪問到的數據不是直接使用的,而是被轉存、排序、分組、修改等。

因此如果存在只是用幾行代碼就能實現輕易整合各種各樣的數據——可以整合來自不同源的數據,并且能夠執行基本的數據操作的工具,那將非常有用。

語言集成查詢( LINQ )就是上述那樣的一種工具。 LINQ 是 .NET Framework 3.5 的一個擴展集并且它的管理語言使查詢更類似于是一種對象。它定義了一種通用的語法和程序模型,使我們可以使用一種慣用的語法完成查找不同類型的數據。

相關操作像查找、工程、鏈接、分組、分區、集合操作等可以在 LINQ 中使用,并且在 .NET Framework 3.5 中的 C# 和 VB 編譯器支持 LINQ 的語法,這就使得它可以通過配置數據來存儲,而不需要求助于 ADO.NET。

舉個例子,在 Northwind 數據庫中查詢 Constomers 這張表,使用 C# 中的 LINQ ,代碼應該是這樣:

var data = from c in dataContext.Customers where c.Country == "Spain" select c;

其中:

  • from關鍵字邏輯上依次通過每個集合。
  • 包含關鍵字where的表達式會比較集合中的每個對象。
  • select聲明會選擇被比較出的對象加入到列表中并返回。
  • 關鍵字var用于變量聲明。因為返回對象的準確類型不明確,它表明信息需要被動態的推測。

LINQ 查詢語句可以應用在任何繼承于 IEnumerable 的有數據支撐的類,這里 T 可以是任何一個數據類型,例如 List< Book >。

讓我們來看一個示例理解一下概念。示例中使用了如下類:Book.cs

public class Books { public string ID {get; set;} public string Title { get; set; } public decimal Price { get; set; } public DateTime DateOfRelease { get; set; } public static List<Books> GetBooks() { List<Books> list = new List<Books>(); list.Add(new Books { ID = "001", Price = 634.76m, DateOfRelease = Convert.ToDateTime("2010-02-05") }); list.Add(new Books { ID = "002", Price = 250.76m, DateOfRelease = Convert.ToDateTime("2011-08-15") }); list.Add(new Books { ID = "003", Price = 700.00m, DateOfRelease = Convert.ToDateTime("2011-02-05") }); list.Add(new Books { ID = "004", Price = 500.99m, DateOfRelease = Convert.ToDateTime("2011-12-31") }); list.Add(new Books { ID = "005", Price = 314.76m, DateOfRelease = Convert.ToDateTime("2010-02-05") }); list.Add(new Books { ID = "006", Price = 456.76m, DateOfRelease = Convert.ToDateTime("2010-02-05") }); list.Add(new Books { ID = "007", Price = 1000.76m, DateOfRelease = Convert.ToDateTime("2010-02-05") }); return list; } }

在 web 網頁中使用這個類要有簡單的標簽控制,來顯示書的標題。Page_Load 方法創建了一個書的列表并且通過使用 LINQ 查詢返回標題:

public partial class simplequery : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { List<Books> books = Books.GetBooks(); var booktitles = from b in books select b.Title; foreach (var title in booktitles) lblbooks.Text += String.Format("{0} <br />", title); } }

當網頁被運行,標簽顯示查詢結果:

ASP.NET 語言集成查詢在 Page_Load 函數中添加代碼來用 join 子句處理在兩張表里完成查詢:

protected void Page_Load(object sender, EventArgs e) { IEnumerable<Books> books = Books.GetBooks(); IEnumerable<Salesdetails> sales = Salesdetails.getsalesdetails(); var booktitles = from b in books join s in sales on b.ID equals s.ID select new { Name = b.Title, Pages = s.pages }; foreach (var title in booktitles) lblbooks.Text += String.Format("{0} <br />", title); }

結果頁顯示如下:

ASP.NET 語言集成查詢查詢語句只返回那些頁數大于 500 的列:

ASP.NET 語言集成查詢返回的元組是:

ASP.NET 語言集成查詢查詢結果如下圖所示:

ASP.NET 語言集成查詢

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本视频中文字幕 | 成人小视频在线免费观看 | 91麻豆网址 | 国产成人99久久亚洲综合精品 | porno movie hd高清 | 欧美男同猛男 videos 同性 | 欧美日韩精品乱国产 | 国产资源站 | 精品人伦一区二区三区潘金莲 | 国产欧美精品专区一区二区 | 亚洲国产麻豆 | 九色PORNY真实丨国产大胸 | 51国产午夜精品免费视频 | 青青视频国产依人在线 | 亚洲国产综合自在线另类 | 精品一区二区三区五区六区七区 | 免费aⅴ片| 四虎永久免费地址 | 日本高清无吗 | 催眠白丝舞蹈老师小说 | 久久伊人影院 | 2022最新国产在线 | 91av导航| 性一交一无一伦一精一品 | 特黄特色大片免费视频大全 | 精品亚洲午夜久久久久 | 国产亚洲精品久久yy5099 | 美艳教师刘艳第三部166 | 国产婷婷综合丁香亚洲欧洲 | 二区三区在线观看 | 高h短篇辣肉各种姿势bl | 日本中文字幕一区二区高清在线 | 国产91精品久久久久久 | 亚洲国产在线综合018 | 久久婷婷丁香五月色综合啪免费 | 日本色频 | 香蕉eeww99国产精品 | 成人国产精品视频 | 欧美人做人爱a全程免费 | 97影院秋霞国产精品 | 国产亚洲精品美女 |