我正在尝试使用EF5从bcontext.Database.SqlQuery执行存储过程。
它抛出一个错误 must declare the scalar variable '@custid'
must declare the scalar variable '@custid'
var results = _MiscContext.Database.SqlQuery<int>( "exec sp_GetStaff @custid", customerNumber).ToList<int>();
1如果customerNumber是staff,则SP返回,否则返回empty行。
1
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
如何处理?
由于使用的是命名参数,因此必须为要传递的参数指定匹配名称。
var results = _MiscContext.Database.SqlQuery<int>( "exec sp_GetStaff @custid", new SqlParameter("custid", customerNumber)).ToList<int>();