我正在尝试使用具有多个参数的存储过程,但我不断从 API 收到 500 响应。该存储过程返回一个字符串结果并采用 3 个 varchar(30) 参数。
存储过程调用:
string Item1 = "123";
DateTime Item2 = DateTime.Now.AddDays(-3);
DateTime Item3 = DateTime.Now;
var result = await context.Set<string>().FromSqlInterpolated
($"EXECUTE proc @item1={Item1}, @item2={Item2.ToString()}, @item3={Item3.ToString()}")
.FirstOrDefaultAsync();
任何帮助将不胜感激,谢谢!
带参数的FromSqlInterpolated的正确用法:
确保您以 EF Core 正确映射参数的方式传递参数。
FromSqlInterpolated 自动处理 SQL 注入保护并确保参数格式正确。
string Item1 = "123";
DateTime Item2 = DateTime.Now.AddDays(-3);
DateTime Item3 = DateTime.Now;
var result = await context.Set<string>().FromSqlInterpolated(
$"EXECUTE proc @item1={Item1}, @item2={Item2}, @item3={Item3}")
.AsAsyncEnumerable()
.FirstOrDefaultAsync();