Oft schreibe ich SQL wie folgt:
%Vor%Ohne in eine Debatte darüber einzutreten, ob dieser Ansatz gut oder schlecht ist, kann mir jemand sagen, was der beste Weg ist, um dieses SQL in Visual Studio hervorzuheben?
Ein Ansatz, den ich mir vorstellen kann, ist, separate .sql
-Dateien zu erstellen und diese dann als String zu verwenden, damit Visual Studio bei der Bearbeitung des ursprünglichen SQL-Codes erkennt, dass es sich um eine SQL-Datei handelt.
Dies scheint ein mühsamer Ansatz zu sein, um ein einfaches Problem zu lösen. Gibt es eine einfachere Lösung?
Es wird nicht funktionieren, wie andere es dir sagen. Wie würde VS wissen, welche Zeichenfolgen sql sind und welche nicht. Wenn Sie keine SQL-Dateien verwenden möchten, können Sie Ihre eigene Dateierweiterung wie ".sqlx" oder etwas erstellen und dann in VS-Eigenschaften den SQL-Editor für diese Erweiterung zuweisen, sodass VS die richtige Farbcodierung anwenden kann.
Dann können Sie so etwas tun:
%Vor%Es kann sogar besser sein, weil Sie zumindest den SQL-Code getrennt halten. Ich würde jedoch dringend empfehlen, Entity Framework oder Linq-to-SQL
zu betrachtenDafür gibt es eine Visual Studio-Erweiterung (für VS 2010 und 2012). Es hat die Probleme, die Sie sich vorstellen, wie zum Beispiel SQ: Schlüsselwörter in Strings, die kein SQL enthalten. Abhängig von der Art der Arbeit, die Sie ausführen, bevorzugen Sie möglicherweise, dass die Hervorhebung in SQL nicht erfolgt.
Eine Sache, die ich empfehlen kann, ist das Ändern der SQL-Schlüsselwortfarben in Visual Studio als Variationen der normalen Zeichenfolgenfarben. Auf diese Weise ist die Hervorhebung hilfreich, wenn sie korrekt ist, aber sie lenkt nicht ab, wenn ein Wort in einer Zeichenfolge hervorgehoben wird, die nicht wirklich SQL enthält.
JetBrains hat gerade ReSharper 2016.2 herausgebracht, das Unterstützung für Inline-Syntax-Highlighter und Intellisense für regulären Ausdruck und HTML mit Code-Kommentaren wie /*language=html*/
bietet.
Ich finde, dass ein erstaunliches Feature, das (glaube ich) sehr leicht erweitert werden konnte, um SQL und fast jede andere Sprache zu unterstützen.
Ich habe hier eine Feature-Anfrage hinzugefügt: Ссылка
Dies beantwortet Ihre Frage nicht, aber ich hoffe, dass sie in Erwägung ziehen, eine solche Funktion hinzuzufügen, da Inline-SQL im Code ziemlich üblich ist (dh mit Dapper arbeiten).
Tags und Links c# visual-studio-2010 syntax-highlighting tsql