目前,我将查询放在这样的变量中。

query = @"  select top 1
                u.UserID
            from
                dbo.Users u
            where
                u.SystemUser = 1
                and u.Status = @Status";

这样做的问题是在换行时缩进丢失了,我必须自己添加它。

有谁知道更好的方法?我知道存储过程是一种可能性(消除这个缩进问题),但我不确定它们是否一定更适合纯数据检索。

最佳答案

忽略 TSQL 的仇恨者;了解一些 TSQL 并没有本质上的错误!无论如何,我会通过以下方式解决这个问题(如果我保留您的格式,这不是我的规范 - 但是......meh);

                // your existing code at, say, this level
                var query = @"
select top 1
      u.UserID
from
      dbo.Users u
where
      u.SystemUser = 1
      and u.Status = @Status";

                // some more code at, say, this level

通过将 TSQL 保持在左侧,在 IDE 中更容易进行任何缩进等操作,但它也使您的 TSQL 更短,并且在查看跟踪时更易于调试,因为它不是奇怪的 30 多个字符. 在 select 之前以换行符开头也有助于保持整洁。

就我个人而言,我也发现代码缩进和 TSQL 缩进之间的不相交有助于找到 TSQL——而 TSQL 对我来说非常重要,所以这是一件好事。强调我们刚刚切换了“世界”(因为想要一个更好的术语)也无害。

关于c# - 在变量中存储 SQL 的最佳方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6941287/

10-11 02:13