小编use*_*893的帖子

Visual Studio 编译时 SQL 验证

如果我有一个像这样的 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)

并让编译器根据给定的数据库模式验证字符串。

c# sql validation roslyn

5
推荐指数
1
解决办法
906
查看次数

标签 统计

c# ×1

roslyn ×1

sql ×1

validation ×1