Должен объявить скалярную переменную '@custid', используя dbcontext.Database.SqlQuery?

Я пытаюсь выполнить хранимую процедуру из bcontext.Database.SqlQuery с помощью EF5.

Выбрасывает ошибку must declare the scalar variable '@custid'

  var results = _MiscContext.Database.SqlQuery<int>(
              "exec sp_GetStaff @custid",
              customerNumber).ToList<int>();

SP возвращает 1, если customerNumber является персоналом, иначе он возвращает строку empty.

ALTER PROCEDURE [dbo].[sp_GetStaff]
    @custid varchar(12)
AS
BEGIN

    SET NOCOUNT ON;
SELECT 
1 AS [C1]
FROM  [dbo].[Staff] with (nolock)
WHERE [CUSTOMER_ID] = @custid


END

Как это сделать?

Ответ 1

Поскольку вы используете именованные параметры, вам нужно указать имя сопоставления для передаваемого параметра.

var results = _MiscContext.Database.SqlQuery<int>(
    "exec sp_GetStaff @custid",
    new SqlParameter("custid", customerNumber)).ToList<int>();

Ответ 2

Try

var results = _MiscContext.Database.SqlQuery<int>(
              "exec sp_GetStaff {0}",
              customerNumber).ToList();