Lập trình hướng đối tượng với C#
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);