LINQ to SQL输出参数浅谈

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

在向大家详细介绍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 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

其生成代码如下:

[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));  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

我们使用下面的语句调用此存储过程:注意: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); 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

语句描述:这个实例使用返回 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-14 09:49:08

Linq扩展函数

2009-09-16 11:15:52

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-18 16:32:51

Linq委托实例化

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-08 16:55:01

Linq实现XML转换

2009-09-14 13:30:04

Linq数据和对象

2009-09-11 10:01:57

Linq对象初始值

2009-09-14 14:01:21

LINQ泛型数据集

2009-09-08 09:48:34

LINQ初始化数组
点赞
收藏

51CTO技术栈公众号