2011-10-05 46 views

Trả lời

14

FirstOrDefault() là khi không có hoặc nhiều kết quả được mong đợi có trong bộ sưu tập đầu vào và cuộc gọi trả về mục đầu tiên nếu có nhiều kết quả, Mặc định nếu không có.

SingleOrDefault() là khi không hoặc có một kết quả mong đợi trong bộ sưu tập đầu vào và cuộc gọi trả về kết quả nếu có một kết quả chính xác, Mặc định nếu không có kết quả và ngoại lệ nếu có nhiều kết quả.

7

SingleOrDefault sẽ ném ngoại lệ "Trình tự chứa nhiều hơn một phần tử" nếu có nhiều mục.

0

FirstOrDefault nó sẽ mất số hàng nhưng sẽ chỉ trở lại đầu tiên của nó nếu nó là null nó có thể xử lý các ngoại lệ Đầu tiên nó sẽ mất số hàng nhưng sẽ chỉ trở lại đầu tiên của nó nếu nó là rỗng nó sẽ ném ngoại lệ singleordefault nó sẽ chỉ mất một hàng nhưng sẽ trở lại nó có thể xử lý ngoại lệ nếu nó là null duy nhất nó sẽ chỉ mất một hàng nhưng sẽ trở lại nó & không thể xử lý ngoại lệ

Nếu kết quả của bạn thiết lập trả về 0 hồ sơ:

SingleOrDefault trả về giá trị mặc định cho loại (ví dụ: mặc định cho int là 0) FirstOrDefault trả về giá trị mặc định cho các loại Nếu bạn kết quả thiết lập trở lại 1 kỷ lục:

SingleOrDefault trả rằng kỷ lục FirstOrDefault trả rằng kỷ lục Nếu kết quả của bạn thiết lập trở lại nhiều kỷ lục:

SingleOrDefault ném một ngoại lệ FirstOrDefault trả về bản ghi đầu tiên Kết luận:

Nếu bạn muốn có ngoại lệ được ném nếu tập hợp kết quả chứa nhiều bản ghi, hãy sử dụng SingleOrDefault.

Nếu bạn luôn muốn 1 kỷ lục không có vấn đề gì các tập kết quả chứa, sử dụng FirstOrDefault

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