OKay,
    You have a stored procedure like this:
Input = @L As Bit, @G As Bit.
SELECT        X.*
FROM            Y AS X
WHERE        (X.D = @L AND @L IS NOT NULL) AND (X.T = @G AND
                         @G IS NOT NULL)
ORDER BY X.U DESC

Why does LINQ TO SQL make the return type int instead of ISingleResult?