3 Stimmen

Sollen wir bei der Verwendung von LINQ 3 Ebenen verwenden?

Müssen wir bei der Verwendung von LINQ to SQL oder Entity Framework die Anwendung in 3 Schichten aufteilen: BLL, DAL, Interface?

4voto

Nick Craver Punkte 609016

Tun Sie, was für Sie funktioniert Sie . Eine Hochzeitswebsite mit einer Handvoll Links zu erstellen und 5 Inhaltsseiten aus der Datenbank herauszuholen? Mehr als 1 Ebene scheint ein gewaltiger Overkill zu sein. Auf der anderen Seite, für ein sehr komplexes oder großes Projekt: Ich denke, man sollte zumindest eine gewisse Trennung anstreben, denn das spart Zeit, Verwirrung und Verstand.

Es kommt darauf an, woran Sie arbeiten und wie viel Arbeit Sie dafür aufwenden müssen. Letztlich kommt es darauf an, was Sie und Ihr Team bevorzugen . Es gibt keine rechts Antwort: Es kommt darauf an, was der Situation entspricht.

2voto

Mike Jacobs Punkte 509

In Projekten, die ich entwickle, finde ich es sinnvoll, eine DL zu erstellen, selbst wenn ich Linq2Sql für den Datenzugriff verwende.

Der Hauptgrund dafür ist, dass viele der Aufrufe an die DL, um ein oder mehrere Geschäftsobjekte aus der DB abzurufen, tatsächlich mehr als einen Aufruf an die Datenbank erfordern, insbesondere wenn eine Eager-Loading-Strategie implementiert wird, und dass beim Speichern eines Geschäftsobjekts, dessen Daten in mehreren Tabellen gespeichert sind, eine Transaktion über mehrere Aufrufe an die Datenbank aufgebaut werden kann.

Die Geschäftsschicht braucht das nicht zu wissen; sie sollte in der Lage sein, einen einzigen Aufruf an die DL zu tätigen und es der DL zu überlassen, alle mühsamen Abfragen und Zusammenstellungen von Daten zu Geschäftsobjekten vorzunehmen.

0voto

andy Punkte 8455

Ich schließe mich @MikeJacobs an.

Ich habe tatsächlich eine LINQ2SQL-Bibliothek geschrieben, die ALLE DataContext Sachen abstrahiert, und alle .Insert(), .Execute() und .SubmitChanges().

Es ist wirklich schön, wenn man das einfach weglassen kann. In LINQ2SQL sind Sie immer noch davon abhängig, dass alle Ihre Schichten über die LINQ2SQL-Entitäten wissen, aber meine obersten Schichten senden sehr selten komplexe Lambdas an die DAL, das meiste davon wird in der DAL getan.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X