Tôi đã tự dạy mình luôn luôn xử lý bất kỳ mã truy cập dữ liệu nào trong một 'lớp' hoàn toàn riêng biệt với mã giao diện người dùng và logic nghiệp vụ của tôi. Đây luôn là một kiến trúc rất tốt đối với tôi và bất kỳ 'quy tắc' hay thực tiễn tốt nhất nào tôi thấy, vẫn có thể phù hợp với phong cách mã hóa này, đặc biệt là Nguyên tắc Trách nhiệm Đơn lẻ .
Đối với hầu hết các dự án nhà của tôi, tôi sử dụng ORM do chính tôi tạo ra, thứ mà tôi luôn có ý định tạo nguồn mở. Tuy nhiên, kể từ đó, LINQ trở nên khả dụng, rất giống với cách ORM của tôi hoạt động (nhưng .. tốt hơn).
Không có gì mà trước đây tôi có thể làm với ORM của riêng mình mà bây giờ tôi không thể làm với LINQ (ngoại trừ các bit của tích hợp REST). Vì vậy, câu hỏi của tôi là; LINQ là lớp truy cập dữ liệu mới của tôi? Tôi có cần lớp này nữa không? BLL của tôi có nên nói chuyện trực tiếp với LINQ không? Hay là thực hành xấu này vẫn còn?
Biên tập:
Câu hỏi ban đầu được đề cập đến LINQ to Entities, nhưng có nhiều câu trả lời thú vị liên quan đến LINQ to SQL. Suy nghĩ của mọi người về cả hai là gì? Tôi tập hợp hơn LINQ to SQL thực sự không thể thay thế DAL, nhưng Entity Framework có thể không?