我试图仅使用可选参数的子集调用存储过程,但看起来我必须包含所有参数才能使Database.SqlQuery正常运行。是这种情况,还是有一种解决方法,我只需要传递我关心的参数?
我基本上尝试执行以下操作,其中存储过程具有许多输入参数,其中一些是可选的。我希望能够调用该过程并仅传递我需要的参数。
CREATE PROCEDURE [dbo].[SP_MySP]
@One INT,
@Two INT = NULL,
@Three INT,
@Four INT = NULL ...
var paramOne = new SqlParameter("@One", firstValue);
var paramThree = new SqlParameter("@Three", thirdValue);
var paramFour = new SqlParameter("@Four", fourthValue);
var result = DataContext.Database.SqlQuery<MySPEntity>("EXEC SP_MySP @One, @Three, @Four"
, paramOne, paramThree, paraFour).ToList();
return result;