使用Entity Framework从存储过程中获取输出参数和数据集

时间:2013-07-26 11:13:36

标签: entity-framework stored-procedures output-parameter

我正在尝试使用Entity Framework 4.1调用下面附带的存储过程来涵盖2种可能的场景:

  • exec TEST_SP_OUTPUT 1 应从ACTIONTYPE表和@Success = 1

  • 返回数据集
  • exec TEST_SP_OUTPUT 0 没有返回数据集,@ Success = 0

    CREATE PROCEDURE [dbo].[TEST_SP_OUTPUT]
    (
      @Id int, 
      @Success int OUTPUT
    )
    AS
    BEGIN
    SET NOCOUNT ON;
    
    IF (@Id = 1)
      BEGIN
        SELECT ActionName, ActionType FROM ACTIONTYPE   
        SET @Success = 1;
      END
    ELSE
        SET @Success = 0;
    END
    

问题是:我可以在Entity Framework模型中使用单一复杂类型处理两次执行吗? 请记住,方案“exec TEST_SP_OUTPUT 0”未返回任何数据集或列。

如果我错了,请纠正我,但我可能的解决办法可能是为第二种情况设置虚拟结果:

    CREATE PROCEDURE [dbo].[TEST_SP_OUTPUT]
    (
      @Id int, 
      @Success int OUTPUT
    )
    AS
    BEGIN
    SET NOCOUNT ON;

    IF (@Id = 1)
      BEGIN
        SELECT ActionName, ActionType FROM ACTIONTYPE   
        SET @Success = 1;
      END
    ELSE
      BEGIN            
        SELECT '' as ActionName, '' as ActionType
        SET @Success = 0;
      END
    END

干杯。

涓。

0 个答案:

没有答案