2012-09-20 2 views
1

Simple.Data를 사용하여 저장 프로 시저의 출력 매개 변수에서 결과를 얻고 싶습니다. 이제 나는 다음과 SP (그것의 쓸모를 무시)가 있다고 가정 해 봅시다 :Simple.Data를 사용할 때 출력 매개 변수를 사용하여 SQL Server 저장 프로 시저 호출

CREATE PROCEDURE [dbo].[TestProc] 
    @InParam int, 
    @OutParam int OUTPUT 
AS 
BEGIN 
    SELECT @OutParam = @InParam * 10 
END 

내가 Simple.Data로를 호출 할 때, 나는 다음과 같은 코드를 사용합니다.

var db = Database.Open(); 

int outParam; 
var result = db.TestProc(42, out outParam); 

Console.WriteLine(outParam); // <-- == 0 
Console.WriteLine(result.OutputValues["OutParam"]); // <-- == 420 

OutParam에는 OutputValues ​​사전이 아닌 값이 있어야합니다. 그래서 내 질문은 :이 특별한 경우에 OutParam에서 결과를 얻는 더 좋은 방법이 있습니까?

답변

3

불행히도매개 변수는 모든 CLR 언어에서 지원되지 않기 때문에 Simple.Data에서 사용하는 동적 바인딩 인프라에서 지원하지 않습니다.

더 나은 구문에 대한 제안이 열려 있습니다.

+0

인자로 outParam을 전송할 필요없이 호출 할 수 있다면 멋있을 것입니다. 그냥 db.TestProc (42); (나는 그것이 가능할지 모르겠다 ...) –

+1

저장 프로 시저를 변경하고 출력 매개 변수의 기본값을 제공하면이를 전달할 필요가 없습니다. 은'PROCEDURE TestProc (@Answer INT, INT @Question OUTPUT = NULL)을 작성' 다음 db.TestProc '(42)' 잘 작동 할 것이다. –

관련 문제