c# - EF Core 2.2调用存储过程返回0个结果
问题描述
我似乎无法从我的存储过程中得到任何结果。
这是代码:
public JsonResult SearchBudgetRequests(int BudgetRequestNumber, int FiscalYearId)
{
var result = _db.Search.FromSql($"EXECUTE spSearchGeneral {0}, {1}, {2}", BudgetRequestNumber, _sessionUser.DepartmentId, FiscalYearId)
.ToList();
return Json(result);
}
我可以验证存储过程返回数据:
语境:
public DbQuery<Search> Search { get; set; }
型号类:
public partial class Search
{
public int BudgetRequestId { get; set; }
public string BudgetRequestNumber { get; set; }
public string RequestStatus { get; set; }
public string CurrentOwner { get; set; }
public string ContactUser { get; set; }
public string BudgetDescription { get; set; }
public string RequestType { get; set; }
public string CapsUnits { get; set; }
public string ObjectCategory { get; set; }
public string RecurringType { get; set; }
public string CoreType { get; set; }
public decimal Expenditure { get; set; }
}
我究竟做错了什么?提前致谢!
更新:
认为我的存储过程格式有问题,当我跟踪调用时,查询也显示 0 个结果,生成的查询如下所示:
exec sp_executesql N'EXECUTE spSearchGeneral 0, 1, 2',N'@p0 int,@p1 int,@p2 int',@p0=37124,@p1=1,@p2=2015
解决方案
您在这里错误地使用了字符串插值
_db.Search.FromSql($"EXECUTE spSearchGeneral {0}, {1}, {2}", BudgetRequestNumber, _sessionUser.DepartmentId, FiscalYearId)
只需删除$
_db.Search.FromSql("EXECUTE spSearchGeneral {0}, {1}, {2}", BudgetRequestNumber, _sessionUser.DepartmentId, FiscalYearId)
要正确使用字符串插值:
_db.Search.FromSql($"EXECUTE spSearchGeneral {BudgetRequestNumber}, {_sessionUser.DepartmentId}, {FiscalYearId}")
推荐阅读
- windows - 如何在 Windows 中解压多个扩展名为 .tar.gz.aa、.tar.gz.ab ..... 的文件?
- node.js - 汇总(带 TypeScript,Phaser)不使用节点解析插件生成输出
- python - 使用github api获取python中存储库的加班星数
- dialogflow-cx - Dialogflow CX - 从 webhook 转换到另一个页面
- java - 使用 Gson 访问 Json 中的嵌套列表
- html - 图像不会出现在本地主机上
- php - 下面的php mysqli连接阻塞代码?
- permalinks - 终极会员资料永久链接基础定制
- kafka-rest - 使用 kafka REST 代理响应负载中的自定义响应内容进行响应
- javascript - Visual Studio 2019 Javascript Intellisense 无法用于添加到在 ASP.NET WebForms 项目中的另一个脚本中定义的对象的属性