C# Linq to SQL SP正在返回多个记录集,而我只需要一个!

C# Linq to SQL SP正在返回多个记录集,而我只需要一个!,c#,sql-server,linq-to-sql,C#,Sql Server,Linq To Sql,您好,我有以下SP,但是当我使用LINQ进行SQL时,它会生成2个多记录集。为了我的理智,我正在试图弄清楚存储过程中执行此操作的内容,并且只希望返回一个记录集。。。能帮忙吗 ALTER PROCEDURE [dbo].[CheckToken] @LoginId int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfer

您好,我有以下SP,但是当我使用LINQ进行SQL时,它会生成2个多记录集。为了我的理智,我正在试图弄清楚存储过程中执行此操作的内容,并且只希望返回一个记录集。。。能帮忙吗

    ALTER PROCEDURE [dbo].[CheckToken] 
        @LoginId int
    AS
    BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;

        DECLARE @failures INT

        SET @failures = (SELECT COUNT(loginid) FROM auditerrorcode WHERE 
                    errorid = 1012 AND loginid = @loginid
                    AND datecreated >  DATEADD(hh, -1, getdate())
                )


        IF @failures > 10 UPDATE [login] SET [IsDisabled]=1 WHERE loginid = @loginid

        SELECT * FROM [Login] WHERE LoginId = @LoginId

END

独立执行您的过程,并排除不获取两行的情况,因为您要传递的ID返回了两行。在SQL Management Studio中使用

EXEC dbo.CheckToken 999

请确保使用与从.NET代码调用的@LoginID相同的@LoginID。

对不起,伙计们

我再次查看了生成的DBML文件,并删除了定义了多个结果集的CheckToken方法。然后我重新生成,现在我得到了我所期望的,一个记录集


看来我给SP做的MOD已经起作用了。

两个结果相同吗?它们是否具有相同的LoginId?否,第一个记录集包含所有用于登录的字段,第二个记录集包含一个用于IsDisabled的字段!