LINQ to SQL输出参数浅谈

开发 后端
这里介绍LINQ to SQL输出参数映射到引用参数,并且对于值类型,它将参数声明为可以为 null。LINQ to SQL输出参数是按引用传递的,以支持参数为“in/out”的方案。

在向大家详细介绍LINQ to SQL输出参数之前,首先让大家了解下输入参数,然后全面介绍LINQ to SQL输出参数。

LINQ to SQL输出参数映射到引用参数,并且对于值类型,它将参数声明为可以为 null。

下面的示例带有单个输入参数(客户 ID)并返回一个输出参数(该客户的总销售额)。

  1. ALTER PROCEDURE [dbo].[CustOrderTotal]   
  2. @CustomerID nchar(5),  
  3. @TotalSales money OUTPUT  
  4. AS  
  5. SELECT @TotalSales = SUM(OD.UNITPRICE*(1-OD.DISCOUNT) * OD.QUANTITY)  
  6. FROM ORDERS O, "ORDER DETAILS" OD  
  7. where O.CUSTOMERID = @CustomerID AND O.ORDERID = OD.ORDERID 

其生成代码如下:

  1. [Function(Name="dbo.CustOrderTotal")]  
  2. public int CustOrderTotal(  
  3. [Parameter(Name="CustomerID"DbType="NChar(5)")]string customerID,  
  4. [Parameter(Name="TotalSales"DbType="Money")]  
  5. ref System.Nullable<decimal> totalSales)  
  6. {  
  7. IExecuteResult result = this.ExecuteMethodCall(this,  
  8. ((MethodInfo)(MethodInfo.GetCurrentMethod())),  
  9. customerID, totalSales);  
  10. totalSales = ((System.Nullable<decimal>)  
  11. (result.GetParameterValue(1)));  
  12. return ((int)(result.ReturnValue));  

我们使用下面的语句调用此存储过程:注意:LINQ to SQL输出参数是按引用传递的,以支持参数为“in/out”的方案。在这种情况下,参数仅为“out”。

  1. decimal? totalSales = 0;  
  2. string customerID = "ALFKI";  
  3. db.CustOrderTotal(customerID, ref totalSales);  
  4. Console.WriteLine("Total Sales for Customer '{0}' = {1:C}",   
  5. customerID, totalSales); 

语句描述:这个实例使用返回 Out 参数的存储过程。

好了,就说到这里了,其增删改操作同理。相信大家通过这5个实例理解了存储过程。

【编辑推荐】

  1. LINQ to DataSet查询详解
  2. Linq实现XML转换浅谈
  3. Linq to SQL强类型DataContext
  4. Linq SelectMany学习经验
  5. 使用LINQ进行数据转换剖析
责任编辑:佚名 来源: CSDN
相关推荐

2009-09-10 11:29:00

LINQ to SQL

2009-09-07 16:25:14

Linq To SQL

2009-09-09 15:44:22

Linq DataCo

2009-09-15 16:31:15

LINQ Custom

2009-09-11 11:25:35

LINQ函数集合

2009-09-10 15:45:07

Linq使用Selec

2009-09-16 11:15:52

Linq联接数据

2009-09-14 09:49:08

Linq扩展函数

2009-09-07 17:32:14

LINQ检索数据

2009-09-08 15:19:52

Linq Where操

2009-05-14 14:23:25

微软ado.netLINQ

2009-09-15 11:08:01

LinQ调用存储过程

2009-09-14 15:45:28

LINQ删除XML节点

2009-06-18 10:07:44

LINQ to ACC

2009-09-18 16:32:51

Linq委托实例化

2009-09-14 13:30:04

Linq数据和对象

2009-09-08 16:55:01

Linq实现XML转换

2009-09-11 10:01:57

Linq对象初始值

2009-09-08 09:48:34

LINQ初始化数组

2009-09-14 14:01:21

LINQ泛型数据集
点赞
收藏

51CTO技术栈公众号