2011-07-11 28 views
5

loại dữ liệu nào FirstOrDefault hoặc SingleOrDefault sẽ trả về.Về FirstOrDefault hoặc SingleOrDefault

giả trở lại truy vấn của tôi 3 kỷ lục như

empid ename salary 
----- ----- ------ 
1  joy 1500 
2  rob 4500 
3  jen 6500 

vì vậy nếu chúng tôi sử dụng FirstOrDefault hoặc SingleOrDefault sau đó loại resultset tôi sẽ nhận được. hãy giải thích bằng ví dụ. Cảm ơn

Trả lời

3

SingleOrDefault sẽ trả về ngoại lệ vì nó chờ để lấy một bản ghi hoặc không có bản ghi và FirstOrDefault sẽ trả lại bản ghi đầu tiên (1 niềm vui 1500) bạn có thể sử dụng SingleOrDefault khi nơi bạn chứa điều kiện sẽ trả về hồ sơ trong bạn trường hợp - where empid == 1 rõ ràng bạn muốn chỉ có một kỷ lục với ID 1

+0

cảm ơn ... hãy cho tôi một mẫu nhỏ cho SingleOrDefault. tôi cần phải biết loại tình huống SingleOrDefault sẽ được sử dụng. xin vui lòng cần một mẫu. – Mou

+0

bạn có thể sử dụng SingleOrDefault khi vị trí của bạn chứa một điều kiện sẽ trả về hồ sơ trong trường hợp của bạn - nơi empid == 1 rõ ràng là bạn chỉ muốn một bản ghi DB với ID 1 – kleinohad

34
   | 0 values | 1 value  | > 1 value 
FirstOrDefault | Default  | First value | First value 
SingleOrDefault | Default  | First value | Exception 

Và để mở rộng bảng này để toàn bộ tập DB:

   | 0 values | 1 value  | > 1 value 
First   | Exception | First value | First value 
FirstOrDefault | Default  | First value | First value 
Single   | Exception | First value | Exception 
SingleOrDefault | Default  | First value | Exception 
Last   | Exception | Last value | Last value 
LastOrDefault | Default  | Last value | Last value 

Và đây là một phiên bản wi th một số giá trị cụ thể để làm cho nó rõ ràng hơn:

   | []   | [1]   | [1,2,3] 
First   | Exception | 1   | 1 
FirstOrDefault | 0   | 1   | 1 
Single   | Exception | 1   | Exception 
SingleOrDefault | 0   | 1   | Exception 
Last   | Exception | 1   | 3 
LastOrDefault | 0   | 1   | 3 
+1

tôi không thể hiểu chút nào từ trợ giúp của bạn. thay vì giải thích sẽ tốt hơn .... cảm ơn – Mou

+8

@ user72: bạn không hiểu gì? Cái bàn thật rõ ràng. –

+2

@ user728750: Với mẫu dữ liệu của bạn, 'FirstOrDefault' sẽ cung cấp cho bạn" niềm vui "và' SingleOrDefault' sẽ ném một ngoại lệ. –

3

FirstOrDefault sẽ trở lại cho bạn những yếu tố đầu tiên và giá trị mặc định (giá trị mặc định cho kiểu giá trị và null cho loại tài liệu tham khảo) phần tử nếu không có các yếu tố có mặt.

SingleOrDefault sẽ trả lại phần tử nếu chỉ có một phần tử. Mặc định nếu không có mặt và ném ngoại lệ nếu có nhiều hơn một phần tử trong truy vấn của bạn.

Trong trường hợp của bạn, FirstOrDefault sẽ trả về phần tử đầu tiên. Và SingleOrDefault sẽ ném một ngoại lệ.

Các vấn đề liên quan