我正在使用
Microsoft.Data.Sqlite;
来查询 SQLite 数据库。
mytable
表的结构和较大的尺寸意味着我需要提供手写SQL以进行高效的数据检索。
var myresult = dbContext.MyTable.FromSqlInterpolated($"select * from mytable where numericValue >= {dynamicNumericValueHere} limit 10;").ToList();
生成此 SQL
select *
from mytable
where numericValue >= @p0
limit 10;
这工作正常,但是我必须使用内联 SQL 字符串,这是 SQL 的简化版本。实际的 SQL 有多行,有多个参数。
我也可能需要使用不同版本的 SQL 字符串。
如何将此 SQL 移出此 C# 文件,同时确保使用参数化查询来防止 SQL 注入,以便可以将 SQL 行单独组织在不同的文件中?
谢谢
您可以将逐字标识符与字符串插值结合起来。
var myresult = dbContext.MyTable.FromSqlInterpolated($@"
select
*
from mytable
where numericValue >= {dynamicNumericValueHere}
limit 10;
").ToList();
更多信息: