Tôi tin rằng nếu bạn có kho lưu trữ của mình, hãy sử dụng ORM mà nó đã đủ trừu tượng hóa từ cơ sở dữ liệu.
Tuy nhiên, nơi tôi đang làm việc bây giờ, ai đó tin rằng chúng ta nên có một lớp trừu tượng ORM trong trường hợp chúng ta muốn thay đổi ORM sau này.
Có thực sự cần thiết hay đơn giản chỉ là quá nhiều để tạo ra một lớp sẽ hoạt động trên nhiều ORM?
Biên tập
Chỉ để cung cấp thêm chi tiết:
- Chúng tôi có lớp POCO và Lớp thực thể được ánh xạ với AutoMapper. Lớp thực thể được sử dụng bởi lớp Kho lưu trữ. Lớp kho lưu trữ sau đó sử dụng lớp trừu tượng bổ sung để giao tiếp với Entity Framework.
- Lớp nghiệp vụ không có cách nào truy cập trực tiếp vào Entity Framework. Ngay cả khi không có lớp trừu tượng bổ sung trên ORM, lớp này vẫn cần sử dụng lớp dịch vụ sử dụng lớp kho lưu trữ. Trong cả hai trường hợp, lớp nghiệp vụ hoàn toàn tách biệt với ORM.
- Đối số chính là có thể thay đổi ORM trong tương lai. Vì nó thực sự được bản địa hóa bên trong lớp Kho lưu trữ, nên đối với tôi, nó đã được phân tách rõ ràng và tôi không hiểu tại sao một lớp trừu tượng bổ sung được yêu cầu phải có mã "chất lượng".