Có một số câu hỏi tương tự về vấn đề này, bởi tôi vẫn chưa tìm thấy đủ lý do để quyết định nên đi đường nào.NHibernate có hoặc không có Kho lưu trữ
Câu hỏi thực sự là hợp lý với abstract the NHibernate using a Repository pattern hoặc not?
Có vẻ như lý do duy nhất đằng sau việc trừu tượng hóa nó là để lại cho mình một tùy chọn để thay thế NHibernate bằng một ORM khác nếu cần. Nhưng việc tạo kho và truy vấn trừu tượng có vẻ như thêm một lớp khác và thực hiện phần lớn hệ thống ống nước bằng tay.
Một tùy chọn là sử dụng hiển thị IQueryable<T>
cho lớp doanh nghiệp và sử dụng LINQ, nhưng từ kinh nghiệm LINQ của tôi vẫn chưa được triển khai đầy đủ trong NHibernate (truy vấn đơn giản không phải lúc nào cũng hoạt động như mong đợi, và tôi ghét dành thời gian để gỡ lỗi một khuôn khổ).
Mặc dù tham chiếu NHibernate trong lớp doanh nghiệp của tôi làm đau mắt, nhưng nó được cho là một sự trừu tượng của truy cập dữ liệu của chính nó, phải không?
Bạn có ý kiến gì về điều này?
Làm cách nào để thêm một mục mới vào cơ sở dữ liệu bằng LINQ? – Paco
@Paco: Thêm một mục mới vào cơ sở dữ liệu khá dễ trừu tượng, tôi không nói về điều đó. Truy vấn là vấn đề thực tế, vì không có cách đơn giản để cho phép các truy vấn phức tạp thông qua một kho lưu trữ mà không cần mã hóa đầy đủ. – Groo