Truy Vấn Bằng Các Phương Thức First & Single Của LINQ to MVC

Thảo luận trong 'Lập trình web Asp.net' bắt đầu bởi phamcongson, 11/3/17.

  1. phamcongson
    Tham gia ngày:
    3/6/13
    Bài viết:
    474
    Đã được thích:
    93
    Điểm thành tích:
    28
    Giới tính:
    Nam
    Cách sử dụng và lưu ý khi sử dụng : Các Phương Thức First & Single Của LINQ to MVC
    • First trả về đối tượng đầu tiên thỏa mản có trong kết quả truy vấn. nếu không tìm thấy có sẽ có Exception
    • FirstOrDefaut giống như first ngoại trừ không có giá trị thỏa mản sẽ trả về giá trị mặc định của kiểu dữ liệu
    • Single trả về đối tượng thỏa mản điều kiện và duy nhất nếu không duy nhất hoặc không tìm thấy sẽ văng exception
    • SingleOrDefault tuơng tự như như Single ngoại trừ không tìm thấy sẽ trả về giá trị mặt định
    => Cái xxxOrDefault tuơng tự như xxx chỉ khác là trả về giá trị mặc định khi nó không tìm thấy.

    Lưu ý:


    Khi sử dụng các phương thức của LINQ để truy vấn dữ liệu trong .NET Framework, bạn phải cần cẩn thận với các phương thức mà chỉ trả về duy nhất một mẫu tin như: .First(), .Last(), .Single(). Nếu không có mẫu tin nào phù hợp với yêu cầu truy vấn sẽ trả về giá trị NULL và kèm theo sản sinh ra 1 lỗi thông báo như sau: “InvalidOperationException : sequence contains no elements”.
    Mã:
    Person p1 = people.First(p => p.Gender == true);
    Person p2 = people.Single(p => p.Gender == true);
    
    Tuy nhiên, LINQ sẽ không để bạn phải lo lắng quá. Họ đã có giải pháp cho việc không chắc chắn khi truy vấn một dữ liệu mà không biết là có tồn tại hay không. Bạn nên sử dụng các phương thức .SingleOrDefault(), .LastOrDefault() và .FirstOrDefault() của LINQ khi bạn không chắc chắn là dữ liệu cần tìm là có hay là không.
    Mã:
    Person p1 = people.Where(p => p.Gender == true).FirstOrDefault();
    Person p2 = people.Where(p => p.Gender == true).SingleOrDefault();
    
     
    Cảm ơn đã xem bài:

    Truy Vấn Bằng Các Phương Thức First & Single Của LINQ to MVC

    Chỉnh sửa cuối: 11/3/17