Sử dụng mẫu Kho lưu trữ, có đúng không khi trả về IQueryable của tập dữ liệu (bảng), cho sử dụng chung?
Nó rất tiện dụng trong nhiều trường hợp, đặc biệt là khi sử dụng các thư viện bên ngoài tận dụng giao diện đó, ví dụ như một số plugin sắp xếp / lọc và liên kết với các phần tử ui.
Tuy nhiên, việc phơi bày một IQueryable đôi khi dường như khiến thiết kế dễ bị lỗi. Điều này, cùng với việc sử dụng sai tải lười biếng có thể dẫn đến các lượt truy cập hiệu suất nghiêm trọng.
Mặt khác, việc có các phương thức truy cập cho mỗi lần sử dụng có vẻ dư thừa và cũng rất nhiều công việc (xem xét các bài kiểm tra đơn vị, v.v.).
new DbContext()
bất cứ khi nào họ cần và gọi SaveChanges()
bất cứ khi nào họ muốn. Không thể kiểm tra bất cứ điều gì và chỉ có điều tôi có thể nghĩ là lớp bổ sung ẩn nó.