使用Database.SqlQuery调用存储过程时,EF 6省略了可选参数

时间:2017-09-06 12:49:19

标签: c# entity-framework-6

我试图仅使用可选参数的子集调用存储过程,但看起来我必须包含所有参数才能使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;

0 个答案:

没有答案