Похоже, что Linq-to-SQL не любит хранимых процедур, которые возвращают один результат в виде инструкции SELECT. У меня была та же проблема, которую вы видите.
Одним из решений для такого случая было бы создать вместо этого хранимую функцию:
CREATE FUNCTION dbo.GetCountFunc()
RETURNS INT
AS BEGIN
DECLARE @MyCount INT
SELECT @MyCount = COUNT(*) FROM Customers
RETURN @MyCount
END
, а затем перетащите это в контекст данных Linq-to-SQL и создайте ссылку на него. В этом случае я возвращаю INT без проблем.
Марк