我最近遇到了一个程序,它是在一个表中使用sql语句开发的,每个语句都有一个代码.而不是在程序本身中具有特定的sql语句.
所以,而不是像这样的代码:
string query = "SELECT id, name from [Users]";
cmd.ExecuteQuery(query);
Run Code Online (Sandbox Code Playgroud)
他们使用这样的代码:(简化)
string firstQuery = "SELECT queryText from [Queries] where queryCode = 'SELECT_ALL_USERS'";
string userQuery = cmd.ExecuteQuery(firstQuery);//pretend this directly returns the result of the first query
cmd.ExecuteQuery(userQuery);
Run Code Online (Sandbox Code Playgroud)
据我所知,这背后的逻辑是它使程序更容易维护,因为开发人员可以自由地更改"用户sql"而无需实际更改程序.
然而,这让我觉得有点适得其反.这种代码会被认为是个好主意吗?
编辑:我不是在寻找像"使用ORM"这样的建议.假设sql查询是唯一的选择.