Ich schreibe ein neues Projekt in C # mit einer Reihe von SQL-Abfragen darin. Einige sind relativ groß und komplex. Ich möchte wissen, was der beste Weg ist, sie zu lagern. Im Idealfall würde ich gespeicherte Prozeduren in der Datenbank erstellen, aber die Datenbank wird von vielen anderen Anwendungen verwendet, daher ist es besser, wenn ich die Prozeduren, die für meine Anwendung spezifisch sind, in meiner Anwendung behalten kann.
Optionen scheinen zu sein:
const string query ="Select * From MyTable"
)
QueryName.sql
Gibt es einen zusätzlichen Gedanken, gibt es eine Möglichkeit, stark typisierte Klassendefinitionen aus den SQL-Abfragen zu erzeugen?
Eine andere Option wäre:
4: Erstellen Sie eine Datei für jede Abfrage als QueryName.sql
aber machen Sie es zu einer eingebetteten Ressource in Ihrer Assembly. Auf diese Weise haben Sie keine physischen Dateien auf der Festplatte, aber Ihre SQL-Abfragen sind in Ihrer eigenen Datei in Ihrer Visual Studio-Lösung gut versteckt, und Sie können den SQL-Text aus diesen eingebetteten Ressourcen einfach in Ihre SqlCommand
-Objekte extrahieren / p>
Sehen Sie sich diese Ressourcen an, damit Sie loslegen können:
Warum nicht einfach Entity-Framework oder Linq-to-SQL
verwenden?Wenn Sie eine Tabelle namens Foos yoiu haben, erhalten Sie einen Code wie:
%Vor%was wiederum zu SQL übersetzt wie:
%Vor%Der obige C # -Code ist stark typisiert und das Entity-Framework erstellt alle benötigten Datenklassen für Sie.
Tags und Links sql c# entity-framework