CƠ BẢN LINQ TO SQL SERVER - C#

Sơ đồ quan hệ bảng:

ERROR


#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.