簡體   English   中英

無法讀取使用實體框架從存儲過程返回的值

[英]Unable to read value returned from a stored procedure using Entity Framework

我編寫了一個存儲過程,如果找到該行,將返回行的ID;如果未找到,將創建行,並返回新創建的行的ID。 我在C#函數中檢索此返回值時遇到問題。


存儲過程:

PROCEDURE [TagDatabase].[GetTagID] 
    -- Add the parameters for the stored procedure here
    @TagName as varchar(200), 
    @UserID int = 0,
    @TagID int = 0 OUTPUT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    select @TagID=ID from Tag where Name = @TagName and UserID=@UserID;
    IF NULLIF(@TagID, '') IS NULL
    BEGIN
        DECLARE @OutputTbl TABLE (ID INT)

        INSERT INTO Tag(Name, ParentID, UserID)
        OUTPUT INSERTED.ID INTO @OutputTbl(ID)
        VALUES (@TagName, 0, @UserID);

        select @TagID=ID from @OutputTbl


    END

    select @TagID
END

我的函數來檢索由此返回的值:

ObjectParameter objParam = new ObjectParameter("TagID", typeof(long));

context.GetTagID("newTag", 10, objParam);
context.SaveChanges();
long id = Convert.ToInt64(Convert.ToInt64(id)));

更改

長id = Convert.ToInt64(Convert.ToInt64(id)));

長id = Convert.ToInt64(objParam.Value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM