在向大家详细介绍LINQ to SQL输出参数之前,首先让大家了解下输入参数,然后全面介绍LINQ to SQL输出参数。
LINQ to SQL输出参数映射到引用参数,并且对于值类型,它将参数声明为可以为 null。
下面的示例带有单个输入参数(客户 ID)并返回一个输出参数(该客户的总销售额)。
- ALTER PROCEDURE [dbo].[CustOrderTotal]
- @CustomerID nchar(5),
- @TotalSales money OUTPUT
- AS
- SELECT @TotalSales = SUM(OD.UNITPRICE*(1-OD.DISCOUNT) * OD.QUANTITY)
- FROM ORDERS O, "ORDER DETAILS" OD
- where O.CUSTOMERID = @CustomerID AND O.ORDERID = OD.ORDERID
其生成代码如下:
- [Function(Name="dbo.CustOrderTotal")]
- public int CustOrderTotal(
- [Parameter(Name="CustomerID", DbType="NChar(5)")]string customerID,
- [Parameter(Name="TotalSales", DbType="Money")]
- ref System.Nullable<decimal> totalSales)
- {
- IExecuteResult result = this.ExecuteMethodCall(this,
- ((MethodInfo)(MethodInfo.GetCurrentMethod())),
- customerID, totalSales);
- totalSales = ((System.Nullable<decimal>)
- (result.GetParameterValue(1)));
- return ((int)(result.ReturnValue));
- }
我们使用下面的语句调用此存储过程:注意:LINQ to SQL输出参数是按引用传递的,以支持参数为“in/out”的方案。在这种情况下,参数仅为“out”。
- decimal? totalSales = 0;
- string customerID = "ALFKI";
- db.CustOrderTotal(customerID, ref totalSales);
- Console.WriteLine("Total Sales for Customer '{0}' = {1:C}",
- customerID, totalSales);
语句描述:这个实例使用返回 Out 参数的存储过程。
好了,就说到这里了,其增删改操作同理。相信大家通过这5个实例理解了存储过程。
【编辑推荐】