LINQ là ngôn ngữ truy vấn đa năng mà chúng ta cần sử dụng chúng ở tất cả mọi nơi trong ứng ụng .NET. Nhưng nhiều bạn chưa có kiến thức cũng như kỹ năng để hiểu rõ về nó và để viết được các câu LINQ tối ưu. TEDU đã nghiên cứu và xây dựng nên khóa học này giúp các bạn hiểu rõ và là nền tảng cho các bạn viết lệnh LINQ nhanh và tối ưu nhất.
Có nhiều khi mọi người lúng túng trong việc xử lý LINQ hay dùng Store Procedure. Nhưng một điều không thể phủ nhận là LINQ rất tiện trong mọi trường hợp. Hơn nữa việc Unit Test, quản lý source cũng rất dễ dàng. Chúng ta không phủ nhận viết Store Procedure khi xử lý nghiệp vụ với database là rất nhanh và linh hoạt hơn LINQ nhưng nó cũng có những điểm yếu nhất định.
Việc so sánh LINQ và Store Procedure là khập khiễng, vì LINQ là thư viện làm việc trên .NET và nó hỗ trợ tuy vấn thao tác với các loại nguồn dữ liệu bao gồm File, XML, Object, JSON…còn Store Procedure là một thành phần trong Database mà thôi. Nên làm việc với LINQ không chỉ là làm việc với database mà chúng ta còn làm việc với mọi loại nguồn dữ liệu.
Hệ thống hoàn chỉnh đòi hỏi chúng ta phải kết hợp nhiều kỹ thuật khác nhau, khóa học này TEDU hy vọng trang bị cho các bạn các kiến thức cốt lõi trong việc kiểm soát và sử dụng LINQ tốt nhất giúp các bạn tăng hiệu quả làm việc với LINQ.
Mục tiêu đạt được
Hoàn thành khóa học này các bạn sẽ:
- Hiểu được cơ chế của LINQ
- Thành thạo cú pháp truy vấn của LINQ
- Các lênh join trong SQL
- Lamda Expression
- Truy vấn LINQ với Object
- Truy vấn LINQ với Database
- Truy vấn LINQ với XML
- Tối ưu performance câu lệnh LINQ
Yêu cầu ban đầu
Các bạn cần có kiến thức cơ bản về C# và lập trình hướng đối tượng.
Nội dung chính
Khóa học này bao gồm các phần chính như sau:
- Giới thiệu phương pháp học tập
- Cơ bản về LINQ, so sánh với việc viết không LINQ.
- Hiểu về IEnumerable và Lamda Expression
- Các cơ chế trong LINQ [Func, Action Types, Custom Filters Operator]
- Các cơ chế truy vấn dữ liệu và tối ưu hóa
- Kỹ thuật join và aggregate dữ liệu trong LINQ
- Truy vấn XML trong LINQ
- Truy vấn Database với Entity trong LinQ
Chi tiết bài học
- Giới thiệu về khóa học và phương pháp học tập
- Khái niệm cơ bản về LINQ
- Tại sao phải dùng LINQ
- IQueryable và IEnumerable
- Tạo Extension Methods trong LINQ
- Hiểu về Lamda Expression
- Tìm hiểu về Func và Action Type
- So sánh cú pháp Query và Method Expression
- Tạo và sử dụng Custom filter operator
- Sử dụng từ khóa yield với Custom filter operator
- Các toán tử lọc
- Các toán tử sắp xếp kết quả
- Các toán tử nhóm
- Các toán tử Join
- Các toán tử chọn kết quả
- Các toán tử lượng hóa
- Các phép toán tổ hợp
- Các phép toán với phần tử
- Các toán tử so sánh bằng
- Toán tử nối
- Các toán tử generate
- Các phép toán với tập hợp
- Các phép toán phân vùng
- Các phép toán chuyển đổi
- Deffered Execution trong LINQ
- Immediate Execution
- Expression
- Expression tree
- Từ khóa let
- Từ khóa into
- Bài tập làm việc với File CSV
- Bài tập làm việc với JSON
- Làm việc với XML
- Làm việc với Database sử dụng Entity Framework Core
- Tổng kết khóa học
Bạch Ngọc Toàn
Họ và tên: Toàn Bạch
Nghề nghiêp: Senior Fullstack .NET Developer
Kỹ năng: Có hơn 8 năm làm dự án về ASP.NET MVC, WebForm, Web Service, Web API, ASP.NET Core, Angular SQL Server, JQuery, SOLID, Design Pattern, DevOps.
Yêu cầu bài toán
Nhập vào tuần tự ngày, tháng , năm và xuất ra thứ của ngày đó trong tuần
Ví dụ:
Nhập ngày 10 tháng 9 năm 2018. Kết quả xuất ra “Thứ Hai”
Yêu cầu: Viết chương trình với mỗi trường hợp sử dụngIF – ELSE và SWITCH CASE.
Mục tiêu
Làm quen với Cấu trúc rẽ nhánh if – else và Cấu trúc rẽ nhánh Switch case.
Hướng dẫn
Bài tập mang tính tham khảo, hỗ trợ các bạn làm quen và luyện tập với các bài toán lập trình từ cơ bản đến nâng cao trong C#.
Để đảm bảo kiến thức về bài tập này, bạn nên xem qua bài:
- BIẾN TRONG C#
- KIỂU DỮ LIỆU TRONG C#
- TOÁN TỬ TRONG C#
- ÉP KIỂU TRONG C#
- CẤU TRÚC RẼ NHÁNH IF ELSE TRONG C#.
- CẤU TRÚC SWITCH CASE TRONG C#
Bài tập sẽ được hướng dẫn chi tiết qua các Live Stream tương tác hằng ngày tại Channel
Youtube.com/Kteam
Kteam khuyến khích các bạn tự phân tích đề bài > tự giải bài toán > debugđể kiểm tra kết quả và fix lỗi trong quá trình giải. Sau đó, bạn có thể tham khảo source code mẫu hoặc video hướng dẫn để hoàn chỉnh bài tập.
Để được hỗ trợ tốt nhất, bạn có thể đặt câu hỏi ở phần BÌNH LUẬN bên dưới bài viết hoặc ở mục HỎI & ĐÁP.
Source code tham khảo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp_Bai15
{
}
class Program
{
static void Main[string[] args]
{
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine["Ngày: "];
int day = Int32.Parse[Console.ReadLine[]];
Console.WriteLine["Tháng: "];
int month = Int32.Parse[Console.ReadLine[]];
Console.WriteLine["Năm: "];
int year = Int32.Parse[Console.ReadLine[]];
DateTime date = new DateTime[year,month,day];
Console.WriteLine[date.DayOfWeek];
Console.ReadKey[];
}
}
Tải project
Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!
Kết luận
Bạn có thể củng cố kiến thức C# từ các khóa học tại LẬP TRÌNH C#.NET với rất nhiều khóa học từ cơ bản đến nâng cao, kèm theo các dự án thực tế như làm game, làm phần mềm quản lý.
Hoặc tìm hiểu thêm các bài tập khác trong khóa BÀI TẬP LẬP TRÌNH.
Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên: “ Luyện tập – Thử thách – Không ngại khó!”
Tải xuống
Tài liệu
Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Nhập vào tuần tự ngày, tháng , năm và xuất ra thứ của ngày đó trong tuần dưới dạng file PDF trong link bên dưới.
Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com
Đừng quên like và share để ủng hộ Kteam và tác giả nhé!
Thảo luận
Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.