我经常写一些像这样的SQL:
string sql = @"
-- Multi-line SQL
";
如果不讨论这种方法是好还是坏,有人可以告诉我在Visual Studio中突出显示这个SQL的最佳方法是什么?
我能想到的一种方法是创建单独的.sql
文件,然后在此处将其作为字符串使用,以便在编辑原始SQL时,Visual Studio会识别出这是一个SQL文件并使用语法突出显示它。
这似乎是解决一个简单问题的繁琐方法。有更简单的解决方案吗?
答案 0 :(得分:7)
JetBrains刚刚发布了ReSharper 2016.2,它支持正则表达式的内联语法高亮和智能感知以及带有/*language=html*/
等代码注释的html。
我发现这是一个了不起的功能,我相信它可以很容易地扩展到支持SQL和几乎任何其他语言。
我在此处添加了一项功能请求:https://youtrack.jetbrains.com/issue/RSRP-460656
这不能回答你的问题,但我希望他们会考虑添加这样的功能,因为内联SQL在代码中非常常见(即使用Dapper)。
答案 1 :(得分:6)
有一个Visual Studio扩展(适用于VS 2010和2012)。它确实存在您可能想到的问题,例如在不包含SQL的字符串中突出显示SQ:关键字。根据您的工作类型,您可能仍然希望在SQL中没有突出显示。
http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b
我可以推荐的一件事是将Visual Studio中的SQL关键字颜色更改为普通字符串颜色的变体。这样,突出显示在正确时很有用,但在突出显示实际上不包含SQL的字符串中的单词时不会分散注意力。
答案 2 :(得分:1)
它不会像别人告诉你的那样起作用。 VS如何知道哪些字符串是sql,哪些不是。如果您不想使用sql文件,您可以创建自己的文件扩展名,如“.sqlx”或其他东西,然后在VS属性中为此扩展分配SQL编辑器,因此VS知道应用正确的颜色编码。
然后你可以这样做:
string sql = System.IO.File.ReadAllText("your path to sql file");
它甚至可能更好,因为至少你会将SQL代码分开。但是,我强烈建议您查看Entity Framework或Linq-to-SQL