使用 linq 调用存储过程

Ray*_*phy 0 asp.net stored-procedures linq-to-sql

我是 Linq 服务器的新手。我的数据库中有一个存储过程,用于返回计数。

select COUNT(*) from tbl_WorkerUsers 
        where WorkerCode=@Wcode
Run Code Online (Sandbox Code Playgroud)

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

    exec checkWorkerCodeAvailibility 100000312
Run Code Online (Sandbox Code Playgroud)

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

WorkerDataContext Wkc = new WorkerDataContext();
        int? result = Wkc.checkWorkerCodeAvailibility(Int32.Parse(Wcode)).Single().Column1;
Run Code Online (Sandbox Code Playgroud)

怎么了?

Dru*_*uid 6

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

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
Run Code Online (Sandbox Code Playgroud)

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

int result = db.checkWorkerCodeAvailibility(Int32.Parse(WCode));
Run Code Online (Sandbox Code Playgroud)