Ich habe mir selbst beigebracht, Datenzugriffscode immer in einer völlig separaten Schicht zu meiner Geschäftslogik und meinem UI-Code zu behandeln. Dies war schon immer eine sehr gute Architektur für mich, und alle „Regeln“ oder Best Practices, die ich sehe, passen immer noch in diesen Codierungsstil, insbesondere in das Prinzip der Einzelverantwortung .
Für die meisten meiner Heimprojekte würde ich mein eigenes ORM verwenden, das ich erstellt habe und das ich immer als Open Source machen wollte. Seitdem ist jedoch LINQ verfügbar geworden, was der Funktionsweise meines ORM sehr ähnlich war (aber ... besser).
Mit meinem eigenen ORM konnte ich bisher nichts tun, was ich jetzt mit LINQ nicht tun kann (außer Teilen der REST-Integration). Meine Frage ist also: Ist LINQ meine neue Datenzugriffsschicht? Benötige ich diese Schicht überhaupt noch? Sollte meine BLL nur direkt mit LINQ sprechen? Oder ist diese schlechte Praxis immer noch?
Bearbeiten:
Die ursprüngliche Frage bezog sich auf LINQ to Entities, aber es gibt viele interessante Antworten zu LINQ to SQL. Was denken die Menschen über beide? Ich nehme an, dass LINQ to SQL einen DAL nicht wirklich ersetzen kann, aber könnte das Entity Framework?