首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

LINQ to SQL Select 投影與彙總函數完整指南(5):匿名型別、條件投影、Distinct、Count/Sum/Min/Max/Avg 九大形式

     編輯:關於ASP.NET

LINQ 查詢表達式中 select 子句位於最後,負責定義回傳結果形狀,支援豐富的投影形式。

Select 九大形式

1. 簡單投影

var q = from c in db.Customers select c.ContactName;

2. 匿名型別投影(C# 3.0 特性)


// 保留原屬性名
var q = from c in db.Customers select new { c.ContactName, c.Phone };

// 重新命名屬性
var q = from e in db.Employees
        select new { Name = e.FirstName + " " + e.LastName, Phone = e.HomePhone };

// 計算衍生欄位
var q = from p in db.Products
        select new { p.ProductID, HalfPrice = p.UnitPrice / 2 };
匿名型別由編譯器自動產生唯讀屬性類別,屬性名可保留、重命名或運算產生。

3. 條件投影


var q = from p in db.Products
        select new { p.ProductName, PriceLevel = p.UnitPrice > 50 ? "High" : "Low" };

4. 指定型別投影


var q = from c in db.Customers
        select new CustomerDTO { ID = c.CustomerID, Name = c.ContactName };

5. 篩選投影 / 6. 整數型別 / 7. 巢狀型別 / 8. 本地方法呼叫

(略,原理同前)

9. Distinct 去重


var q = (from c in db.Customers select c.Country).Distinct();

彙總函數

函數SQL 對應範例
Count()COUNT(*)db.Customers.Count()
Sum()SUMdb.Orders.Sum(o => o.Freight)
Min()MINdb.Products.Min(p => p.UnitPrice)
Max()MAXdb.Products.Max(p => p.UnitPrice)
Average()AVGdb.Products.Average(p => p.UnitPrice)

所有查詢均為延遲執行,至實體化時才發送 SQL。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved