Nauczyłem się zawsze obsługiwać dowolny kod dostępu do danych w całkowicie oddzielnej „warstwie” od mojej logiki biznesowej i kodu interfejsu użytkownika. To zawsze była dla mnie bardzo dobra architektura, a wszelkie „zasady” i najlepsze praktyki, które widzę, wciąż pasują do tego stylu kodowania, szczególnie Zasada Jednej Odpowiedzialności .
Do większości moich domowych projektów używałbym własnej ORM, którą stworzyłem, którą zawsze zamierzałem tworzyć open source. Jednak od tego czasu LINQ stał się dostępny, co było bardzo podobne do mojego ORM (ale ... lepiej).
Nic nie mogłem wcześniej zrobić z moją własną ORM, czego nie mogę teraz zrobić z LINQ (z wyjątkiem bitów integracji REST). Więc moje pytanie brzmi; czy LINQ jest moją nową warstwą dostępu do danych? Czy w ogóle potrzebuję już tej warstwy? Czy moja BLL powinna rozmawiać bezpośrednio z LINQ? A może nadal jest to zła praktyka?
Edytować:
Pierwotne pytanie dotyczyło LINQ to Entities, ale istnieje wiele interesujących odpowiedzi dotyczących LINQ to SQL. Jakie są przemyślenia na ich temat? Rozumiem, że LINQ to SQL nie może tak naprawdę zastąpić DAL, ale czy Entity Framework?