1

我正在尝试使用 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
    

问题是:我可以在实体框架模型中使用单个复杂类型来处理这两个执行吗? 请记住,场景“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

干杯。

胡安。

4

0 回答 0