10

我经常写一些这样的SQL:

string sql = @"
   -- Multi-line SQL
";

在不讨论这种方法是好是坏的情况下,有人可以告诉我在 Visual Studio 中突出显示此 SQL 的最佳方法是什么?

我能想到的一种方法是创建单独的.sql文件,然后在此处将其作为字符串使用,以便在编辑原始 SQL 时,Visual Studio 识别出这是一个 SQL 文件并对其进行语法高亮显示。

这似乎是解决一个简单问题的乏味方法。有没有更简单的解决方案?

4

3 回答 3

8

JetBrains 刚刚发布了 ReSharper 2016.2,它支持内联语法高亮和智能感知,用于正则表达式和 html,代码注释如/*language=html*/.

我发现这是一个了不起的功能,(我相信)可以很容易地扩展它以支持 SQL 和几乎任何其他语言。

我在这里添加了一个功能请求:https ://youtrack.jetbrains.com/issue/RSRP-460656

这不能回答您的问题,但我希望他们会考虑添加这样的功能,因为内联 SQL 在代码中很常见(即使用 Dapper)。

于 2016-09-03T14:19:47.277 回答
6

为此有一个 Visual Studio 扩展(适用于 VS 2010 和 2012)。它确实有您想象的问题,例如突出显示 SQ:不包含 SQL 的字符串中的关键字。根据您所做的工作类型,您可能仍然更喜欢在 SQL 中不使用高亮显示。

http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b

我可以推荐的一件事是将 Visual Studio 中的 SQL 关键字颜色更改为正常字符串颜色的变体。这样,突出显示在正确时很有帮助,但在突出显示实际上不包含 SQL 的字符串中的单词的情况下不会分散注意力。

于 2012-09-10T17:31:03.977 回答
0

它不会像其他人告诉你的那样起作用。VS 如何知道哪些字符串是 sql,哪些不是。如果您不想使用 sql 文件,您可以创建自己的文件扩展名,如“.sqlx”或其他东西,然后在 VS 属性中为此扩展名分配 SQL 编辑器,以便 VS 知道对其应用正确的颜色编码。

然后你可以做这样的事情:

string sql = System.IO.File.ReadAllText("your path to sql file");

它甚至可能会更好,因为至少您可以将 SQL 代码分开。但是,我强烈建议您查看 Entity Framework 或 Linq-to-SQL

于 2012-06-13T22:02:14.930 回答