ThS. Nguyễn Nghiệm 0913.745.789 nghiemn@fpt.edu.vn songlong2k@gmail.com
trúc tổ chức của LINQ . Khái niệm cơ bản trong LINQ Kỹ thuật lập trình mới Kiến
Thuộc tính tự động (Automatic Property) Khởi tạo đối tượng (Object Initializer) Kiểu cục bộ tự suy (Local Inference Type) Kiểu nặc danh (Anonymous Type) Phương thức mở rộng (Extension Method) Khởi tạo tập hợp (Collection Initializer) Kỹ thuật truy vấn dữ liệu
Thuộc tính được định nghĩa đầy đủ. (***Thuộc tính là alias của field***)
Thuộc tính dự động. (***Tự sinh field để lưu trữ dữ liệu***)
Gán giá trị cho các thuộc tính ngay lúc khởi tạo đối tượng
Đoạn mã đã được sử dụng trước đây
Kiểu cục bộ tự suy
Inteligence của VS 2012
var được sử dụng để khai báo biến cục bộ tự suy. Biến này được nhận biết trong phạm vi khối lệnh khai báo Không thể dùng var để định nghĩa field
Tạo đối tượng mới không cần định nghĩa lớp. Property được cấp phát động Sử dụng biến tự suy để nắm giữ đối tượng
Được sử dụng để định nghĩa bổ sung các phương
thức cho một lớp đã tồn tại Sau đây là phương thức Submit() được định nghĩa bổ sung cho lớp HtmlHelper
Phương thức mở rộng được sử dụng như các
phương thức gốc của lớp được bổ sung
Biểu tượng của phương thức gốc
Biểu tượng của phương thức mở rộng
Biểu thức truy vấn trên thực hiện như vòng lập foreach hoạt động trên tập hợp numbers. Duyệt tất cả các phần tử trong tập numbers, mỗi phần tử n trong from được kiểm tra điều kiện tại where và nếu thỏa mãn sẽ được chọn lấy bởi select. from: chỉ ra phần tử được lấy từ tập hợp cần truy vấn where: chỉ ra điều kiện lọc select: chỉ ra đối tượng nhận được Kết quả của biểu thức truy vấn linq là 1 tập hợp chứa các đối tượng được chọn bởi mệnh đề select.
Tạo biến mới Sắp xếp
Biểu thức truy vấn trên cho kết quả là 1 tập hợp chứa các đối tượng nặc danh được sắp xếp giảm dần theo số chẵn được chọn. Mỗi đối tượng gồm 2 thuộc tính là namber và rate.
Nhóm chia 3 dư 0 gồm 6, 45, 87 {Nhom=0, SoLuong=3,…}
Nhóm chia 3 dư 1 gồm 19, 13 {Nhom=1, SoLuong=2,…}
Nhóm chia 3 dư 2 gồm 23, 56, 5, 8 {Nhom=2, SoLuong=4,…}
IEnumerable. Where (e => đk) : IEnumerable
Lọc các phần tử theo điều kiện đk IEnumerable. OrderBy (e => exp) : IEnumerable
Sắp xếp các phần tử tăng dần theo biểu thức exp IEnumerable. OrderByDescending (e => exp) :
IEnumerable Sắp xếp các phần tử giảm dần theo biểu thức exp IEnumerable. Select (e => object) : IEnumerable
Chọn đối tượng object IEnumerable. GroupBy (e => exp): IEnumerable
Phân nhóm các phần tử theo biểu thức exp
IEnumerable. Max ([e => exp]): decimal?
Tìm giá trị lớn nhất của biểu thức exp IEnumerable. Min ([e => exp]) : decimal?
Tìm giá trị nhỏ nhất của biểu thức exp IEnumerable. Average ([e => exp]) : decimal?
Tìm giá trị trung bình của biểu thức exp IEnumerable. Sum ([e => exp]) : decimal?
Tính tổng giá trị của biểu thức exp IEnumerable. Count ([e => đk]) : decimal?
Đếm số lượng các phần tử thỏa mãn điều kiện
IEnumerable. All ([e => đk]) : bool
Kiểm tra xem tất cả các phần tử trong tập hợp có thỏa mãn điều kiện hay không? IEnumerable. Any ([e => đk]) : bool
Kiểm tra xem có phần tử nào trong tập hợp thỏa mãn điều kiện hay không? IEnumerable. Contains (element) : bool
Kiểm tra xem tập hợp có chứa phần tử này hau không?
IEnumerable. Single (e => dk) : Entity
Truy vấn 1 phần tử thỏa điều kiện. Lỗi nếu không tìm thấy hoặc có nhiều hơn 1 phần tử IEnumerable. First () : Entity
Truy vấn phần tử đầu tiên IEnumerable. Last () : Entity
Truy vấn phần tử cuối cùng
IEnumerable. Take (n) : IEnumerable
Lấy n phần tử đầu IEnumerable. TakeWhile (e => đk) : IEnumerable
Lây các phần tử đầu khi điều kiện còn đúng IEnumerable. Skip (n) : IEnumerable
Bỏ qua n phần tử đầu IEnumerable. SkipWhile (e => đk) : IEnumerable
Bỏ qua các phần tử đầu khi điều kiện còn đúng
IEnumerable. Intersect (second) : IEnumerable
Giao 2 tập hợp (lấy các phần tử trong tập hợp có mặt trong tập second) IEnumerable. Concat (second) : IEnumerable
Ghép 2 tập hợp (tất cả các phần tử bằng nhau đều được giữ lại) IEnumerable. Union (second) : IEnumerable
Hợp 2 tập hợp (chỉ giữ 1 phần tử bằng nhau) IEnumerable. Except (second) : IEnumerable
Hiệu 2 tập hợp (lấy các phần tử trong tập hợp không có trong tập second)
ThS. Nguyễn Nghiệm 0913.745.789 nghiemn@fpt.edu.vn songlong2k@gmail.com
Liệt kê tất cả hàng hóa Db.Products
Tìm kiếm hàng hóa theo tên Db.Products.Where(p=>p.Name.Contains(?Search))
Tìm kiếm hàng hóa theo giá Db.Products.Where(p=>p.UnitPrice >= ?Min && p.UnitPrice <= ?Max))
Phân trang hàng hóa Db.Products.Skip(?PageNo*PageSize).Take(?PageSize)
Hiển thị chi tiết hàng hóa và hàng cùng loại Db.Products.Single(p=>p.Id=?Id) Db.Products.Single(p=>p.Id=?Id).Category.Products
Thống kê hàng hóa theo loại Db.Products.GroupBy(p=>p.Category).Select(g=>new{})