Một số hàm hữu ích trong LINQ to SQL

Đăng bởi : 1/08/2014



thuvienwinform - LINQ to SQL có rất nhiều hàm, thủ tục hỗ trợ chúng ta trong việc lọc dữ liệu chọn dữ liệu và tất nhiên là nó đã được tối ưu sẵn, cách sử dụng cũng rất đơn giản, dễ ràng trong việc sử dụng, hôm nay mình xin được giới thiệu với mọi người một số hàm, thủ tục chọn dữ liệu

1. Chọn dữ liệu từ 2 bảng:
- Để chọn dữ liệu từ 2 bảng ta sẽ dùng lệnh from như sau:
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };


- Chú ý: trong select ta phải dùng new, tức là tạo một bảng mới gồm các thành viện được chọn.

2. Sắp xếp tăng dần theo một trường
- Cách 1: Sắp xếp ngay trong câu lệnh truy vấn:
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             orderby cb.HeSoLuong descending //Sap xep theo hesoluong
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };

Câu truy vấn này sẽ chọn ra những cán bộ thuộc khoa ngoại ngữ và sắp xếp tăng dần theo hesoluong

- Cách 2: Truy vấn xong mới sắp xếp (cách này hay hơn)
var canBos = from cb in db.tbCanBos
             from phong in db.tbPhongs
             where (cb.IdPhong == phong.IdPhong) && (phong.TenPhong == "Khoa Ngữ")
             select new { hotenthat = cb.Hoten, quequan = cb.QueQuan, cb.HeSoLuong, phong.TenPhong };
canBos = canBos.OrderByDescending(p => p.HeSoLuong);

3. Lấy số dữ liệu nhất định
- Như ví dụ lấy số cán bộ ở trên, ta chỉ cẩn lấy ra 10 đầu tiên trong kết quả thu được thôi, câu lệnh sẽ là:
canBos = canBos.Take(10);
Hoặc
canBos = canBos.Skip(10);
- Với cách dùng Skip() thì ta sẽ bỏ qua 10 người ở đầu danh sách và lấy những người từ vị trí 11 trong danh sách thu được

4. Đếm số dữ liệu thu được sau khi truy vấn
int soNguoi = canBos.Count(10);

<còn tiếp>


Bình luận

Theo dõi các bài đăng | Theo dõi bài này

Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -