c# – 内联SQL查询的最佳实践

我正在使用一个使用大量内联SQL查询的asp.net网站……我想知道最好是在运行时创建内联查询:

int i = 500;

    using (SqlConnection conn = new SqlConnection(connStr))
    {
        SqlCommand com = new SqlCommand(conn);
        ...
        com.CommandText = "select from table where column < @parameter";
        ...
    }

或者有一个类来保存应用程序所需的所有查询.像这样的东西:

class SqlQueries
{
    private string query1 = 
          "select * from tblEmployees where EmployeeName = @EmployeeName";

    private string query2 = 
          "select * from tblVacation where EmployeeName = @EmployeeName";

    public string Query(string s) 
    { 
        string str = string.Empty;

            switch (s) 
            {
                case "query1":
                    str = query1; 
                    break; 
                case "query2":
                    str = query2; 
                    break;
            }     

    return str;    

    }
}

谢谢!

我在我的日子里使用了很多ADO.NET查询,并且我一直使用第一种方法.第二种方法是一个有趣的想法,但如果你在使用它的代码中的另一个地方,编辑这些查询可能很麻烦.它还使得在代码中的特定位置查看查询的内容变得更加困难.例:

string sql = "Update User set age = @age where UserId = @UserId";

告诉开发人员发生了什么,同时:

string sql = SqlQueries.Query("updateAge");

留下有关正在更新的表/列的问题.另外,对于第一个,您确切地知道需要添加什么参数.

如果您在几个可能会改变的地方编写此查询

翻译自:https://stackoverflow.com/questions/12750000/best-practices-for-inline-sql-queries

转载注明原文:c# – 内联SQL查询的最佳实践