Linq多个结果集描述

开发 后端
这里介绍一个按顺序返回Linq多个结果集的存储过程Get Customer And Orders。 返回顾客ID为"SEVES"的顾客和他们所有的订单。

本文向大家介绍Linq多个结果集,可能好多人还不了解Linq多个结果集,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

Linq多个结果集

这种存储过程可以生成Linq多个结果集形状,但我们已经知道结果的返回顺序。

下面是一个按顺序返回Linq多个结果集的存储过程Get Customer And Orders。 返回顾客ID为"SEVES"的顾客和他们所有的订单。

  1. ALTER PROCEDURE [dbo].[Get Customer And Orders]  
  2. (@CustomerID nchar(5))  
  3. -- Add the parameters for the stored procedure here  
  4. AS  
  5. BEGIN  
  6. -- SET NOCOUNT ON added to prevent extra result sets from  
  7. -- interfering with SELECT statements.  
  8. SET NOCOUNT ON;  
  9. SELECT * FROM Customers AS c WHERE c.CustomerID = @CustomerID  
  10. SELECT * FROM Orders AS o WHERE o.CustomerID = @CustomerID  
  11. END 

拖到设计器代码如下:

  1. [Function(Name="dbo.[Get Customer And Orders]")]  
  2. public ISingleResult<Get_Customer_And_OrdersResult> 
  3. Get_Customer_And_Orders([Parameter(Name="CustomerID",  
  4. DbType="NChar(5)")] string customerID)  
  5. {  
  6. IExecuteResult result = this.ExecuteMethodCall(this,  
  7. ((MethodInfo)(MethodInfo.GetCurrentMethod())), customerID);  
  8. return ((ISingleResult<Get_Customer_And_OrdersResult>)  
  9. (result.ReturnValue));  

同样,我们要修改自动生成的代码:

  1. [Function(Name="dbo.[Get Customer And Orders]")]  
  2. [ResultType(typeof(CustomerResultSet))]  
  3. [ResultType(typeof(OrdersResultSet))]  
  4. public IMultipleResults Get_Customer_And_Orders  
  5. ([Parameter(Name="CustomerID",DbType="NChar(5)")]  
  6. string customerID)  
  7. {  
  8. IExecuteResult result = this.ExecuteMethodCall(this,  
  9. ((MethodInfo)(MethodInfo.GetCurrentMethod())), customerID);  
  10. return ((IMultipleResults)(result.ReturnValue));  

同样,自己手写类,让其存储过程返回各自的结果集。

  1. IMultipleResults result = db.Get_Customer_And_Orders("SEVES");  
  2. //返回Customer结果集  
  3. IEnumerable<CustomerResultSet> customer =   
  4. result.GetResult<CustomerResultSet>();  
  5. //返回Orders结果集  
  6. IEnumerable<OrdersResultSet> orders =   
  7.  result.GetResult<OrdersResultSet>();  
  8. //在这里,我们读取CustomerResultSet中的数据  
  9. foreach (CustomerResultSet cust in customer)  
  10. {  
  11. Console.WriteLine(cust.CustomerID);  

语句描述:这个实例使用存储过程返回客户“SEVES”及其所有订单。以上介绍Linq多个结果集

【编辑推荐】

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

2009-09-18 13:53:09

LINQ工具集

2009-09-09 10:58:58

Linq结果集形状

2009-09-09 15:37:27

Linq DataLo

2009-09-15 15:45:00

Linq联合查询

2009-09-14 15:43:12

Linq Settin

2009-09-10 10:37:15

LINQ to SQL

2009-09-16 09:38:27

LINQ To SQL

2009-09-09 15:28:43

Linq to obj

2009-09-15 16:26:36

Linq orderb

2009-09-18 16:00:07

LINQ架构

2009-09-10 15:26:03

Linq City集合

2009-09-14 10:57:46

LINQ入门

2010-11-23 15:59:16

MySQL表结果集

2009-09-17 10:27:55

linq存储过程

2009-09-11 10:20:36

Linq扩展方法

2009-09-15 11:14:33

LINQ to SQL

2009-09-08 09:24:50

LINQ查询

2009-09-14 16:33:55

LINQ To XML

2009-09-17 09:24:57

Linq实现分页

2009-09-14 10:20:52

LINQ查询语法
点赞
收藏

51CTO技术栈公众号