Ich bin ziemlich neu hier, also bitte vergib mir, wenn ich irgendeine Abweichung von den Regeln dieser Website mache.
Ich versuche den besten Weg zu finden, die Namen einer gespeicherten Prozedur im Code zu verwalten.
Wenn ich gerade eine gespeicherte Prozedur anrufe, verwende ich diesen Code:
%Vor%Aber ich denke nicht, dass die Angabe des Namens der gespeicherten Prozedur im Code eine kluge Idee ist, da es schwer zu verfolgen ist.
Ich habe über Enum oder app.config
solutions nachgedacht, aber ich bin mir nicht sicher, ob das die besten Wege sind.
Jede Idee wird sehr geschätzt.
Am Ende läuft es immer auf die konkrete Namenskette des SP hinaus, egal was du tust. Sie müssen sie manuell synchronisieren. - Umsonst ...
Sie könnten dafür Konfigurationsdateien verwenden, aber dieser zusätzliche Aufwand lohnt sich nur, wenn sich die Namen häufig ändern oder sie nach der Kompilierung änderbar bleiben müssen.
Sie können die Aufrufe in eine einfache Gateway-Klasse einbinden:
%Vor%Alternativ können Sie POCOs verwenden, die wissen, wie sie mit der Datenbank interagieren:
%Vor%Der Vorteil besteht darin, dass nicht nur der SP-Name an einem eindeutigen Ort gespeichert wird, sondern auch die Logik, wie Daten aus dem Dataset an derselben Stelle extrahiert werden.
Ich sehe kein großes Problem mit dem, was Sie tun. Sie müssten den SP-Namen irgendwo speichern, entweder in der Abfrage oder in einer anderen Konfigurations- oder Hilfsfunktion.
Abhängig von der Spezifikation tendiere ich zu einem Repository für CRUD-Operationen. Daher weiß ich, dass alle Datenzugriffe einschließlich aller SP-Aufrufe in der ISomeRepository-Implementierung enthalten sind.
Wenn ich mit gespeicherten Prozeduren in C # arbeite, befolge ich die folgenden Regeln.
Jede gespeicherte Prozedur wird nur einmal im Code verwendet, damit ich sie habe nur ein Ort zum Aktualisieren. Ich hasse Magic String und vermeide es Diese gespeicherten Prozeduren werden jedoch nur einmal in der Datenzugriffsebene verwendet (z. B. Repositorys, ReadQueries usw.).
Für CRUD-Operationen wird das Muster "sp_ {Erstellen / Lesen / Aktualisieren / Löschen} {EntityName}" verwendet.
Wenn Sie einen einzelnen Ort mit allen gespeicherten Prozeduren haben möchten, können Sie eine static class
mit Logik erstellen, um die Namen der gespeicherten Prozeduren zu erstellen.
Tags und Links .net c# stored-procedures ado.net