Enter your keyword

Menu

Recent

Sự khác nhau giữa các phương thức Single, SingleOrDefault, First và FirstOrDefault



1. Single
-     Phương thức này trả về một đối tượng được tìm thấy nếu trùng khớp. Nếu điều kiện lọc dữ liệu của bạn mà có 2 giá trị trở lên hoặc không có đối tượng nào nó sẽ quăng ra một exception. Tức bạn phải chắc chắn rằng khi sử dụng Single hãy đảm bảo là chỉ có duy nhất một đối tượng trong tập hợp đó mà thôi.
Ví dụ: Khi bạn nên dùng chúng khi truy vấn theo mã hay username, hay bất kì thuộc tính nào đó được coi là duy nhất.
2. SingleOrDefault
-     Tương tự như Single nhưng trong trường hợp không trả về được đối tượng nào từ danh sách nó sẽ trả một đối tượng mặc định, đương nhiên đối tượng này là gì thì tuỳ thuộc vào truy vấn LINQ của bạn trên tập đối tượng đó. Chú ý là nếu có nhiều hơn một đối tượng trả về nó vẫn ném ra một exception nhé.

3. First
Phương thức này sẽ chọn lấy đối tượng đầu tiên trong tập hợp được trả về cho bạn, nếu có một hoặc nhiều giá trị trùng khớp. Nó sẽ quăng cho bạn một cái exception nếu không tìm thấy đối tượng trong danh sách đó. Vì thế hãy chắc rằng bạn muốn sử dụng phương thức này khi danh sách có ít nhất một đối tượng.

4. FirstOrDefault
Tương tự như First, phương thức này trả về đối tượng đầu tiên của danh sách tìm thấy, nếu danh sách rỗng thì đối tượng mặc định sẽ được trả về mà quăng ra lỗi (exception)

5. Túm lại thì khi nào dùng Single, SingleOrDefault, First and FirstOrDefault
Khi bạn muốn quăng ra một báo lỗi bắt buộc phải lấy được một đối tượng duy nhất trong một danh sách thì dùng Single hoặc SingleDefault
Khi bạn muốn lấy ra một đối tượng mặc định duy nhất hoặc ít nhất là mặc định trong một danh sách hãy chọn SingleOrDefault
Khi bắt buộc phải lấy một đối tượng đầu tiên trong danh sách thì chọn First hoặc FirstOrDefault
Khi bắt buộc phải lấy được ít nhất là đối tượng mặc định nếu danh sách truy vấn không có, hãy chọn FirstOrDefault


Hiệu năng giữa SingleOrDefault và FirstOrDefault
Ta thấy rằng khi dùng SingleOrDefault thì trong quá trình phải có thêm bước kiểm tra đối tượng trả về chỉ có một, nên xét về hiệu năng thì FirstOrDefault thì có hiệu năng tốt hơn vì nó chỉ cần lấy giá trị đầu tiên hoặc trả về giá trị mặc định nếu không tìm thấy.
Sự khác nhau giữa các phương thức Single, SingleOrDefault, First và FirstOrDefault Sự khác nhau giữa các phương thức Single, SingleOrDefault, First và FirstOrDefault Reviewed by Duy Nguyễn on 1/15/2018 Rating: 5

Không có nhận xét nào: