我有一个如下所示的存储过程:
CREATE PROCEDURE [dbo].[Foo]
(
  @ID INT,
  @PARAM1 NVARCHAR(10),
  @Error INT OUT
)
AS 
BEGIN
  IF (@ID < 0)
  BEGIN
    SET @Error = 1
    RETURN
  END
  IF (@ID > 100)
  BEGIN
    SET @Error = 2
    RETURN
  END
  SELECT Field1, Field2, Field3 FROM TABLE WHERE Param = @PARAM1
END
在 EF5 中,我这样称呼它
ObjectParameter error = new ObjectParameter("Error", typeof(global::System.Int32));
List<MyFoo> list = db.Foo(id, param1, error).ToList();
代码无法编译,因为"NOT ALL PATH RETURNS A VALUE"这很有意义,因为我"RETURN"在存储过程中有几个调用。
问题:
从 EF5 调用此存储过程的正确方法是什么(不能更改存储过程)?
提前致谢