2 Stimmen

Wo sind die Mikrowerkzeuge in der Anwendungsarchitektur positioniert?

Einfache Aussagen wie diese: "Select x,y,z From Customer" befinden sich in der Datenzugriffsschicht.

Wenn es eine Logik in der Abfrage gäbe, wie z. B. das Filtern nach Kunden aus einer bestimmten Stadt, müsste ich die Filterung in meine Geschäftsschicht einbauen und sie in der speicherinternen Kundensammlung durchführen.

Wenn ich mir jetzt die Micro ORM Tools anschaue, zeigen sie oft Sql-Anweisungen mit Logik wie:

var a = db.SingleOrDefault<Product>("SELECT * FROM SalesLT.Product WHERE ProductID = @0, 123);

Wo soll ich jetzt diese Codezeile einfügen? In der Geschäftsschicht oder in der Datenzugriffsschicht?

Es gibt eine Logik innerhalb der Anweisung, die in die Geschäftsschicht gehört. Aber dann habe ich

Select-Anweisungen innerhalb meiner BLL?

Das ist alles sehr verwirrend.

0voto

Peter Ritchie Punkte 34327

Wenn Sie ein 3-Schichten-Modell wollen, dann müssen Sie entweder den DB-Kontext oder den Micro-Orm auf der Datenzugriffsschicht verwenden.

0voto

Yogiraj Punkte 1932

Meiner Meinung nach ist das eine persönliche Vorliebe. Ich mag die SQLs in der Nähe der Methode, die sie verwendet, es sei denn, es besteht die Notwendigkeit, sie zwischen verschiedenen BLL-Klassen zu teilen. Das macht die Umstellung einfacher. Für einfache Operationen können Sie Erweiterungsmethoden verwenden wie Dapper.Simple Crud so dass Sie nicht immer wieder die gleichen Vorgänge schreiben müssen. Sie können einen Blick auf meine Github-Repository für die Umsetzung. Ich habe es zusammengestellt für mein Vortrag über Mikro-ORMs. Die Lösung enthält Anwendungsbeispiele für Massive, Dapper, PetaPoco und Simple.Data. Hier ist ein Link zu einer der Dienstklassen, so dass Sie nicht zu viel suchen müssen. Wenn Sie irgendwelche Vorschläge haben, lassen Sie es mich bitte wissen oder noch besser, schicken Sie mir einen Pull-Request :)

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