Bài 6: Làm quen với ngôn ngữ LINQ - truy vấn dữ liệu


1. Giới thiệu LINQ

LINQ (Language Integrated Query) - ngôn ngữ truy vấn tích hợp - nó tích hợp cú pháp truy vấn (gần giống các câu lệnh SQL) vào bên trong ngôn ngữ lập trình C#

using System.Collections.Generic;
using System.Linq;

2. Truy vấn bằng linq

  • Truy vấn lấy tất cả danh sách 
 var ketqua = from product in products
            where product.Price == 400
            select product;
  • Truy vấn chọn lọc (where)
 var ketqua = from product in products
            where product.Price == 400 & product.type== 1
            select product;
  • Sắp xếp kết quả (orderby)
var ketqua = from product in products
            where product.Price <= 300
            orderby product.Price descending
            select product;
  • Gộp nhóm kết quả (group)
var ketqua = from product in products
            where product.Price >=400 && product.Price <= 500
            group product by product.Price;
  • Kết nối các nguồn truy vấn (Join)
TH1: Inner join: Cả 2 bảng cùng có dữ liệu kết nối
var ketqua = from product in products
             join brand in brands on product.Brand equals brand.ID
             select new {
                 name  = product.Name,
                 brand = brand.Name,
                 price = product.Price
             };

TH2: Left join: Bảng 1 có dữ liệu, bảng 2 không nhất thiết phải có dữ liệu

var ketqua = from product in products
             join brand in brands on product.Brand equals brand.ID into t
             from brand in t.DefaultIfEmpty()
             select new {
                 name  = product.Name,
                 brand = (brand == null) ? "NO-BRAND" : brand.Name,
                 price = product.Price
             };

3. Lệnh đếm - Count() 

var ketqua = (from product in products
            where product.Price == 400
            select product).Count();

4. Lệnh  tính tổng - Sum()

var ketqua = (from product in products
            where product.Price == 400
            select product).Sum(m=>m.price);