LINQ to SQL輸出參數(shù)淺談
在向大家詳細(xì)介紹LINQ to SQL輸出參數(shù)之前,首先讓大家了解下輸入?yún)?shù),然后全面介紹LINQ to SQL輸出參數(shù)。
LINQ to SQL輸出參數(shù)映射到引用參數(shù),并且對于值類型,它將參數(shù)聲明為可以為 null。
下面的示例帶有單個輸入?yún)?shù)(客戶 ID)并返回一個輸出參數(shù)(該客戶的總銷售額)。
- 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));
- }
我們使用下面的語句調(diào)用此存儲過程:注意:LINQ to SQL輸出參數(shù)是按引用傳遞的,以支持參數(shù)為“in/out”的方案。在這種情況下,參數(shù)僅為“out”。
- decimal? totalSales = 0;
- string customerID = "ALFKI";
- db.CustOrderTotal(customerID, ref totalSales);
- Console.WriteLine("Total Sales for Customer '{0}' = {1:C}",
- customerID, totalSales);
語句描述:這個實例使用返回 Out 參數(shù)的存儲過程。
好了,就說到這里了,其增刪改操作同理。相信大家通過這5個實例理解了存儲過程。
【編輯推薦】