Mi sono sempre insegnato a gestire qualsiasi codice di accesso ai dati in un "livello" completamente separato alla mia logica aziendale e al codice dell'interfaccia utente. Questa è sempre stata un'architettura molto buona per me e tutte le "regole" o le migliori pratiche che vedo, riescono ancora a inserirsi in questo stile di codifica, in particolare Principio di responsabilità singola .
Per la maggior parte dei miei progetti a casa, userei il mio ORM che ho creato, che ho sempre voluto rendere open-source. Tuttavia, da allora, LINQ è diventato disponibile, il che era molto simile al modo in cui il mio ORM funzionava (ma ... meglio).
Non c'è nulla che potrei fare in precedenza con il mio ORM che ora non riesco a fare con LINQ (eccetto i bit dell'integrazione REST). Quindi la mia domanda è; LINQ è il mio nuovo Data Access Layer? Ho ancora bisogno di questo livello? La mia BLL dovrebbe parlare direttamente con LINQ? O è ancora questa cattiva pratica?
Modifica
La domanda originale si riferiva a LINQ to Entities, ma ci sono molte risposte interessanti su LINQ to SQL. Quali sono i pensieri delle persone su entrambi? Raccolgo che LINQ to SQL non può davvero sostituire un DAL, ma potrebbe Entity Framework?