我最近遇到了一个程序,它是使用表中的 sql 语句开发的,每个语句都有一个代码。而不是在程序本身中有特定的 sql 语句。
所以,不要有这样的代码:
string query = "SELECT id, name from [Users]";
cmd.ExecuteQuery(query);
他们使用这样的代码:(简化)
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);
据我所知,这背后的逻辑是它使程序更易于维护,因为开发人员可以自由更改“用户 sql”,而无需实际更改程序。
然而,这让我觉得可能有点适得其反。这种代码会被认为是一个好主意吗?
编辑:我不是在寻找像“使用 ORM”这样的建议。假设 sql 查询是唯一的选择。