CƠ BẢN LINQ TO SQL SERVER - C#
Sơ đồ quan hệ bảng:
#1: Lấy tất cả bản ghi của bảng khoa:
var data = from a in db.khoa select new {a.Ma_Khoa,a.TenKhoa};
#2: Lấy tất cả bản ghi của bảng khoa với điều kiện mã khoa=1:
var data = from a in db.khoa where a.Ma_Khoa==1 select new {a.Ma_Khoa,a.TenKhoa};
#3: Lấy tất cả bản ghi của bảng khoa với điều kiện tên khoa bắt đầu bằng chữ T:
var data = from a in db.khoa where a.Ma_Khoa.StartsWith(“T”) select new {a.Ma_Khoa,a.TenKhoa};
#4: Lấy tất cả bản ghi của bảng khoa sắp xếp theo tên khoa:
var data = from a in db.khoa orderby sv.Ten_Khoa descending
select new {a.Ma_Khoa,a.TenKhoa};
Note: descending là giảm dần, bỏ đi là tăng.
#5: Join bảng khoa với sinh viên bằng mã khoa:
var data = from k in db.khoa
join sv in db.SinhVien on k.Ma_Khoa equal sv.Ma_khoa
select new {sv.TenSV,k.TenKhoa};
#6: Lấy tất cả bản ghi bảng sinh viên có thuộc bảng khoa:
var data = from sv in db.SinhVien
where (from k in db.khoa select k.MaKhoa).Contains(sv.MaKhoa)
select new {sv.TenSV };
#7: Lấy tất cả bản ghi bảng sinh viên mà không thuộc bảng khoa:
var data = from sv in db.SinhVien
where !(from k in db.khoa select k.MaKhoa).Contains(sv.MaKhoa)
select new {sv.TenSV };
#8:Lấy ra sinh viên chưa có khoa và có khoa, nếu null chưa có khoa để là “Chưa có”:
var data = from sv in db.SinhVien
join k in db.khoa on k.Ma_Khoa equal sv.Ma_khoa into tmp from p in tmp.DefaulIfEmpty()
select new {sv.TenSV,TenKhoa=(p==null)?”Chưa có”:p.TenKhoa };
#9:Lấy ra số sinh viên của từng khoa, và học bổng của sv cao nhất của khoa đấy:
var data = from k in db.Khoa
join sv in db.SinhVien on k.MaKhoa==sv.MaKhoa
group sv by new {k.MaKhoa} into tmp
select new {tmp.Key.TenKhoa,SoSinhVien=tmp.count(),HoBongMax=tmp.max(p=>p.HocBong) };
#10:Lấy ra 5 bản ghi đầu tiên:
var data =( from a in db.khoa select new {a.Ma_Khoa,a.TenKhoa}).Skip(0).Take(5);
Note: Lấy ra 5 bản ghi bắt đầu từ bản ghi 0 , skip(3) có nghĩa bỏ qua 3 bản ghi.