我似乎无法从存储过程中得到任何结果。
代码如下:
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
答案 0 :(得分:2)
您在此错误地使用了string interpolation
_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}")