如果我有一个像这样的 Dapper.NET 查询:
conn.Execute("insert into My_Table values ('blah', 'blah, 'blah', 'blah')");
Run Code Online (Sandbox Code Playgroud)
如何强制 Visual Studio 针对某个数据库架构对此查询进行编译时验证?我知道有一些库可以进行查询验证(提供字符串和连接),但是这里的工作正确的工具是什么?
扩展 Roslyn 以检查我标记为查询字符串的字符串(使用类似于熟悉的 @"Unescaped string" 的语法)?自定义预处理?
还是我问错了问题?将所有查询逻辑包装在我的数据库项目中的存储过程中会更安全吗(这可以让我验证查询本身)?现在我把它写下来,我想我实际上会采用那个解决方案,但我仍然对上面的内容感到好奇。我希望能够写:
conn.Execute(#"insert into My_Table values ('blah',
'blah, 'blah', 'blah')"); //Hashtag to mark as query
Run Code Online (Sandbox Code Playgroud)
并让编译器根据给定的数据库模式验证字符串。