LINQ TO SQL:如何接收多个结果集
来源:互联网 发布:实时数据库 开源 编辑:程序博客网 时间:2024/06/07 03:27
如何我们需要在LINQ TO SQL中调用一个存储过程,它如果会返回多个结果集,这可能会稍微麻烦一点。下面来看一个范例
存储过程:
ALTER PROCEDURE dbo.MultiResultQuery /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */AS /* SET NOCOUNT ON */ SELECT * FROM Orders; SELECT * FROM Customers;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }
将该存储过程拖拽到LINQ TO SQL的设计器上
我们看看设计器帮我们生成了什么方法
它生成了一个方法,同时还生成了一个特定的类型:“MultiResultQuery_个结果”
这显然不是我们想要的结果。我们当然希望直接通过Customers或者Orders去接收结果。那么怎么办呢?
首先,我们将这个“MultiResultQuery_个结果”删除掉,然后修改一下MultiResultQuery方法
[Function(Name="dbo.MultiResultQuery")] [ResultType(typeof(Customers))] [ResultType(typeof(Orders))] public IMultipleResults MultiResultQuery() { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()))); return ((IMultipleResults)(result.ReturnValue)); }
.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }
那么,下面来看看如何使用这个存储过程
using System;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { NorthwindDataContext db = new NorthwindDataContext(); db.Log = Console.Out; var result = db.MultiResultQuery(); var orders = result.GetResult.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }(); var customers = result.GetResult (); foreach (var item in orders) { Console.Write(item.OrderID); } foreach (var item in customers) { Console.Write(item.CustomerID); } } }}
- LINQ TO SQL:如何接收多个结果集
- [代码]如何使用为多个结果形状映射的存储过程(LINQ to SQL)
- linq to sql要注意的及存储过程多结果集实现
- [代码]如何使用为顺序结果形状映射的存储过程(LINQ to SQL)
- linq,linq to sql
- linq to sql取出随机记录/多表查询/将查询出的结果生成xml
- LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
- LINQ : 如何在LINQ to SQL中管理冲突
- Linq初探--Linq to SQL
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据
- LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据[转]
- 如何追踪LINQ To SQL 生成的SQL
- LINQ to SQL:如何直接执行SQL语句
- LINQ to SQL:如何直接执行SQL语句
- vb没法定位.dll函数入口点
- 理解 JavaScript 闭包{转载}
- WPF: Video学习资料
- 以前进行的程序安装创建了挂起的文件操作
- LINQ中的Aggregate语法
- LINQ TO SQL:如何接收多个结果集
- LINQ TO SQL:动态执行带有有参数的存储过程
- vmware server web登陆报HTTP 12029错误,临时解决
- SharePoint:修改FormServer.aspx页面实现自定义逻辑
- HttpModule中真的不能读写Session吗?
- SharePoint:如何设置某个页面必须由站点集管理员打开
- SharePoint Server 2007 页面模型{转载}
- Linq TO SQL 虽好,但不要滥用
- java程序员所需要掌握的一点linux知识