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);