2012-08-29 4 views
1

3 테이블의 금액 합계를 얻는 데 사용하는 스트로크 프로 시저가 있습니다.저장 프로 시저에서 올바른 결과를 얻지 못했습니다.

문제는 Linq를 SQL에 사용하고 있는데 .dbml 파일에이 프로 시저를 넣으면 ISingleResult (GetSurplusDataForConsolidationReportResult)가 있는데 원하는 합계를 얻을 수 없습니다.

빈 ReceivablesSurplus 목록을 수신하고 있습니다.

아이디어가 있으십니까?

ALTER PROCEDURE [dbo].[GetSurplusDataForConsolidationReport] 
    @ID INT 
AS 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 

      SELECT SUM(RB.[Amount]) 
    FROM [DBO].[ReceivablesSurplus] RB 
    WHERE RB.[Cycle] = @ID 

    SELECT SUM(DL.[Amount]) 
    FROM [DBO].[DilutionsSurplus] DL 
    WHERE DL.[Cycle] = @ID 

    SELECT SUM(AC.[Amount]) 
    FROM [DBO].[AccountablesSurplus] AC 
    WHERE AC.[Cycle] = @ID 
END 

이 당신은 단지 값에 .ToList()을 사용할 수 있어야

[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.GetSurplusDataForConsolidationReport")] 
     public ISingleResult<GetSurplusDataForConsolidationReportResult> GetSurplusDataForConsolidationReport([global::System.Data.Linq.Mapping.ParameterAttribute(Name="ID", DbType="Int")] System.Nullable<int> iD) 
     { 
      IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), iD); 
      return ((ISingleResult<GetSurplusDataForConsolidationReportResult>)(result.ReturnValue)); 
     } 
+1

당신은 SQL의 실행을 볼 수 있습니다 예컨대? –

+0

은 독립적으로 실행할 때 적절한 결과를주는 sproc입니까? – AnandPhadke

+0

@AnandPhadke 예, 원하는 결과를 제공합니다. –

답변

0

내하면 .dbml 코드 코드의 호출 라인에, 다음이에서 얻을 수 있습니다 (ISingleResult 구현 IEnumerable 등) sproc에서 반환되는 별도의 결과 집합입니다.

var results = dataContext.GetSurplusDataForConsolidationReport(123).ToList<int>(); // list of sums 
관련 문제