Tôi đang sử dụng mẫu lưu trữ nơi tôi có một lớp kho lưu trữ trên mỗi bảng cơ sở dữ liệu. Tôi đã tự hỏi như thế nào các bạn tiếp cận các truy vấn mà chỉ cần phải trả lại một số cụ thể của cộtMẫu lưu trữ và kiểu trả về
Ví dụ nói rằng tôi có sau
mục Bảng (bảng hư cấu)
ItemId
Name
PurchaseDate
Description
Price
Trong tôi code Tôi tạo một đối tượng với các trường ở trên được gọi là Item.cs (hiện không sử dụng orm).
Nếu tôi có nhiều tình huống mà tôi cần phải trở
- ItemID
- Một sự kết hợp của PurchaseDate và Tên
- ItemID và giá
Đó sẽ là phương pháp tốt nhất?
- Nhận tất cả các lĩnh vực từ bảng các mặt hàng và trả về một đối tượng mục (query 1 repo)
- Tạo ba truy vấn trong Repo và trả về một đối tượng mục cho mỗi một
- Tạo ba truy vấn trong Repo và chỉ trả lại những gì là cần thiết?
Bây giờ hãy tưởng tượng kịch bản này với một bảng có hơn 10 trường.
Cá nhân, tôi thích tùy chọn, nhưng tôi không chắc liệu có cách nào tốt hơn để thực hiện việc này hay không.
Chỉ để xem tôi có đang ở cùng một trang hay không. Đối với các truy vấn cụ thể hơn như (GetPersonByID) bạn trả về toàn bộ bản ghi người từ Repo và sau đó trong lớp dịch vụ loại bỏ tất cả các thông tin không cần thiết và chỉ trả về ID? Bạn có thể cho thấy một ví dụ về điều này, bởi vì đây là những gì tôi đang gặp khó khăn với. Tôi không chắc liệu tôi có nên tạo ra nhiều phương thức Repo hay chỉ có một cột luôn trả về tất cả các cột trong bảng (tức là toàn bộ hàng). – chobo
Tôi đã cố gắng hết sức từ bộ nhớ ... Tôi không có IDE trước mặt mình vì vậy có thể có một vài lỗi trong ví dụ trên. Hy vọng rằng bạn sẽ có được hình ảnh. –
Tôi thích kỹ thuật đó vì nó cắt giảm số lượng phương thức trong kho. Tuy nhiên, tôi luôn được dạy rằng bạn chỉ nên trả lại các cột bạn cần từ một cơ sở dữ liệu có vẻ như với một Kho lưu trữ, bạn luôn luôn trả về một loại thực thể hoặc bộ sưu tập thực thể. Đó có phải là ý định của mẫu Repository không? Có lẽ tôi đang suy nghĩ về hiệu suất cơ sở dữ liệu tác động – chobo