我正在开发一个使用EF Core的项目; 在一个特定情况下,我必须使用原始SQLite命令更新实体的标识.
构建一个SqlCommand并执行它由于某种原因不起作用,以及直接传递参数ExecuteSqlCommand(),它总是抛出异常(我猜这是当前Sqlite驱动程序中的一个错误).
但是,从理论上讲,不应该使用以下代码
string commandText = $"UPDATE {table} SET Id={idPair.Value} WHERE Id={idPair.Key};";
Run Code Online (Sandbox Code Playgroud)
已经阻止了SQL注入,因为这里
table 是我直接从DbContext模型中获得的表名idPair 是一个保证是一个 KeyValuePair<int, int>?
我主要是因为我不知道是否应该禁止这个特定警告,或者尝试以另一种方式执行此操作(无论如何打开关于EntityFrameworkCore.Sqlite的错误报告都在待办事项列表中).