Я навчив себе завжди обробляти будь-який код доступу до даних в абсолютно окремому «шарі» до моєї бізнес-логіки та коду інтерфейсу користувача. Це завжди була для мене дуже хорошою архітектурою, і будь-які «правила» чи найкращі практики, які я бачу, все ще вдається вписатись у цей стиль кодування, особливо Принцип єдиної відповідальності .
Для більшості моїх домашніх проектів я використовував би власну створену ORM, яку я завжди мав намір робити з відкритим кодом. Однак з тих пір LINQ стала доступною, що було дуже схоже на те, як працював мій ORM (але ... краще).
Раніше я нічого не міг би зробити із власною ORM, що зараз не можу зробити з LINQ (крім бітів інтеграції REST). Отже, моє запитання; LINQ - це мій новий рівень доступу до даних? Чи потрібен мені цей шар взагалі більше? Чи повинен мій BLL просто поговорити з LINQ? Або це ще погана практика?
Редагувати:
Первісне питання стосувалося LINQ для Entities, але є багато цікавих відповідей щодо LINQ для SQL. Які думки народів щодо обох? Я знаю, ніж LINQ в SQL насправді не може замінити DAL, але чи може Entity Framework?