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

LINQ to SQL 運算子轉換:AsEnumerable、ToArray、ToList、ToDictionary 實戰

     編輯:關於.NET

為何需要運算子轉換

LINQ to SQL 預設以 IQueryable<T> 在伺服器端執行。若查詢包含無法轉譯為 SQL 的客戶端邏輯(如自訂方法),必須先將序列轉為 IEnumerable<T> 在本機執行。

常用轉換運算子

1. AsEnumerable:切換至客戶端執行

var q = from p in db.Products.AsEnumerable()
        where IsValidProduct(p)  // 自訂方法,無法轉 SQL
        select p;

說明:AsEnumerable() 使後續 Where 使用 LINQ to Objects 執行。

2. ToArray:立即執行並轉為陣列

var q = from c in db.Customers where c.City == "London" select c;
Customer[] qArray = q.ToArray();

3. ToList:立即執行並轉為泛型清單

var q = from e in db.Employees where e.HireDate >= new DateTime(1994,1,1) select e;
List<Employee> qList = q.ToList();

4. ToDictionary:建立鍵值字典

var q = from p in db.Products
        where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
        select p;
Dictionary<int, Product> dict = q.ToDictionary(p => p.ProductID);
foreach (int key in dict.Keys) Console.WriteLine(key);

說明:以 ProductID 為鍵,整筆 Product 實體為值。

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