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