2014-10-09 28 views
0

我有SP這樣BLToolkit:不能讓ScalarSource在DataAccessor工作

CREATE PROCEDURE dbo.pPersonGetIDByName 
@Name nvarchar(50), 
@ID int output 
AS ... 

和適當DataAccessor方法

[ScalarSource(ScalarSourceType.OutputParameter)] 
abstract int GetIDByName(string Name); 

我把它理解爲「呼叫存儲過程,傳遞名稱參數和返回我首先輸出參數作爲結果'。但這個電話

id = pa.GetIDByName("testname"); 

返回我的錯誤

過程或函數 'pPersonGetIDByName' 需要參數 '@ID',但未提供。

據我可以在例子(OutputParameterTest())中看到它應該是確定的。 SQL Server調用是正確的:

declare @p2 int 
set @p2=default 
exec pPersonGetIDByName @Name=N'testname',@[email protected] output 
select @p2 

有什麼問題?

回答

0

您是否嘗試過傳遞參數名:

[ScalarSource(ScalarSourceType.OutputParameter, "ID")] 
abstract int GetIDByName(string Name);