我有这个用来从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
这是我的.dbml代码
[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));
}
答案 0 :(得分:0)
您应该只能对值(.ToList()
实现ISingleResult
)使用IEnumerable
到调用代码行,然后您可以获得单独的结果集从sproc返回。
例如
var results = dataContext.GetSurplusDataForConsolidationReport(123).ToList<int>(); // list of sums