2016-11-29 59 views
0

存儲過程:如何在Entity Framework中獲取/存儲來自存儲過程調用的返回值?

CREATE PROCEDURE spIn 
    (@value1 varchar(100), 
    @value2 varchar(100),) 
AS 
BEGIN 
    INSERT INTO dbo.In(value1, value2,) 
    VALUES (@value1, @value2,) 
END 
RETURN SCOPE_IDENTITY() 
GO 

在代碼中它就像

using (DBEntities dataContext = new DBEntities()) 
{ 
    dataContext.spIn(value1,value2); 
} 

如何存儲的標識值?

FYI而函數導入我已經給出Int32類型的標量,如果我檢查列信息沒有列在那裏。

+0

最新'dataContext.spIn(值1,值2)的返回值;'? ?? – nozzleman

+0

不是一個問題的答案,但在最低限度使用'SCOPE_IDENTITY()',而不是'@@ IDENTITY' – Crowcoder

+0

dataContext.spIn'的'返回類型應該是身份,認爲這很可能是'IEnumerable的',而不是'int',它應該只有一個值。 – juharr

回答

0

我已經改變了存儲的過程是這樣的:

CREATE PROCEDURE spIn 
    (@value1 varchar(100), 
    @value2 varchar(100),) 
AS 
BEGIN 
    INSERT INTO dbo.In(value1, value2,) 
    VALUES (@value1, @value2,) 
END 
SELECT @@IDENTITY AS id 
GO 

和代碼變化是如下

using (DBEntities dataContext = new DBEntities()) 
{ 
    int = ID Convert.ToInt32(dataContext.spIn(value1,value2).FirstOrDefault().id); 
} 
相關問題