我正在尝试使用 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
干杯。
胡安。