将 DEFAULT 值传递给新的 SqlParameter()

Passing DEFAULT value into new SqlParameter()

如何将 DEFAULT 值传递给 MVC4 .NET 中的存储过程? 我有这个代码

return Database.SqlQuery<Program>(
                "spGetProgram @p1,@p2,@p3,@p4",
                new SqlParameter("p1", (object)ID ?? "DEFAULT"),
                new SqlParameter("p2", (object)displayStart ?? "DEFAULT"),
                new SqlParameter("p3", (object)displayLength ?? "DEFAULT"),
                new SqlParameter("p4", (object)searchString ?? "DEFAULT")
            ).ToList();

我试过了

我该怎么做?

我找到了一种解决方法,但它仅适用于一个默认参数。

return Database.SqlQuery<int>(
                "spGetProgramsCount " + (searchString != null ? "@p1" : ""),
                (searchString != null ? new SqlParameter("p1", searchString) : null)
            ).First();

但是当我有更多的参数时

return Database.SqlQuery<int>(
                "spGetProgramsCount" + (searchString != null ? " @p1," : "")
+ (searchString2 != null ? " @p2," : "")
+ (searchString3 != null ? " @p3," : ""),
                (searchString != null ? new SqlParameter("p1", searchString) : null), (searchString2 != null ? new SqlParameter("p2", searchString2) : null), (searchString3 != null ? new SqlParameter("p3", searchString3) : null)
            ).First();

我收到了

When executing a command, parameters must be exclusively database parameters or values.

我相信这是因为程序中有逗号,我不知道如何处理它:/