【发布时间】:2015-06-05 02:02:22
【问题描述】:
我在 sqlserver 2008 上有一个存储过程,其中一个参数接受空值。我不知道如何用参数上的空值调用那个 SP。对于更多的上下文,我正在使用 EntityFramework 6xx
在下一个示例中,参数“@status, @Compatible”可以将 null 作为值,但我只是得到一个异常,说没有提供这些 prarams。
public override IList<MyOutputType> SearchStuff(string Term, int? status, bool? Compatible, long TMPLDMID, int RangeFrom, int RangeTo)
{
List<SqlParameter> par = new List<SqlParameter>();
par.Add(new SqlParameter("@Term", System.Data.SqlDbType.VarChar, 50) { Value = "%" + Term + "%" });
par.Add(new SqlParameter("@status", System.Data.SqlDbType.Int) { Value = status, IsNullable = true });
par.Add(new SqlParameter("@Compatible", Compatible) { IsNullable = true });
par.Add(new SqlParameter("@TMPLDMID", TMPLDMID));
par.Add(new SqlParameter("@RangeFrom", RangeFrom));
par.Add(new SqlParameter("@RangeTo", RangeTo));
return db.Database.SqlQuery<MyOutputType>(
"EXEC [spSearchForStuff] @Term, @status, @Compatible, @TMPLDMID, @RangeFrom, @RangeTo", par.ToArray()
).ToList();
【问题讨论】:
-
你会认为下面的答案是公认的答案吗?
标签: entity-framework stored-procedures parameters null