用linq调用存储过程

时间:2011-03-31 09:23:09

标签: asp.net stored-procedures linq-to-sql

我是Linq服务器的新手。 我的数据库中有一个存储过程可以重新计算计数。

select COUNT(*) from tbl_WorkerUsers 
        where WorkerCode=@Wcode

当我直接在我的数据库中运行它时,它返回1.

    exec checkWorkerCodeAvailibility 100000312

但是当我在c#代码中运行它时,它总是返回null。

WorkerDataContext Wkc = new WorkerDataContext();
        int? result = Wkc.checkWorkerCodeAvailibility(Int32.Parse(Wcode)).Single().Column1;

出了什么问题?

1 个答案:

答案 0 :(得分:4)

像这样定义您的存储过程:

CREATE PROCEDURE [dbo].[checkWorkerCodeAvailibility] 
    @Wcode int = 0
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @Result INT
    SELECT @Result = COUNT(*) FROM tbl_WorkerUsers WHERE WorkerCode=@Wcode
    RETURN @Result
END

然后,您可以使用以下代码访问它:

int result = db.checkWorkerCodeAvailibility(Int32.Parse(WCode));