Có sự khác biệt đáng kể giữa .Find(id)
và .Where(x = >x.Id == id)
nên bắt buộc tôi sử dụng .Find()
trên .Where()/.First()
?Khuôn khổ thực thể Tìm so với vị trí
Tôi sẽ tưởng tượng rằng .Find()
sẽ hiệu quả hơn nhưng hiệu quả hơn tôi nên tránh .Where()/.First()
?
Lý do tôi hỏi là tôi đang sử dụng FakeDbSet chung trong các thử nghiệm để dễ dàng thực hiện kết quả giả và cho đến nay tôi thấy rằng tôi phải kế thừa lớp đó và cung cấp triển khai tùy chỉnh .Find()
trong khi nếu tôi viết mã của tôi với .Where()/.First()
Tôi không cần phải làm thêm công việc đó.
Tốt hơn là bạn nên so sánh 'Find' và' SingleOrDefault', vì 'Where' trả về bộ sưu tập. –
Đúng, mặc dù tôi luôn sử dụng .First hoặc .FirstOrDefault. –
@JimmyBosse bạn có thể muốn xem xét việc sử dụng Single, cho bất kỳ tình huống nào chỉ có 1 bản ghi phù hợp. – Kyle