Должен объявить скалярную переменную '@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();