您好,登錄后才能下訂單哦!
小編給大家分享一下Linq如何實現多個結果集,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Linq多個結果集
這種存儲過程可以生成Linq多個結果集形狀,但我們已經知道結果的返回順序。
下面是一個按順序返回Linq多個結果集的存儲過程Get Customer And Orders。 返回顧客ID為"SEVES"的顧客和他們所有的訂單。
ALTER PROCEDURE [dbo].[Get Customer And Orders] (@CustomerID nchar(5)) -- Add the parameters for the stored procedure here AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; SELECT * FROM Customers AS c WHERE c.CustomerID = @CustomerID SELECT * FROM Orders AS o WHERE o.CustomerID = @CustomerID END
拖到設計器代碼如下:
[Function(Name="dbo.[Get Customer And Orders]")] public ISingleResult<Get_Customer_And_OrdersResult> Get_Customer_And_Orders([Parameter(Name="CustomerID", DbType="NChar(5)")] string customerID) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), customerID); return ((ISingleResult<Get_Customer_And_OrdersResult>) (result.ReturnValue)); }
同樣,我們要修改自動生成的代碼:
[Function(Name="dbo.[Get Customer And Orders]")] [ResultType(typeof(CustomerResultSet))] [ResultType(typeof(OrdersResultSet))] public IMultipleResults Get_Customer_And_Orders ([Parameter(Name="CustomerID",DbType="NChar(5)")] string customerID) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), customerID); return ((IMultipleResults)(result.ReturnValue)); }
同樣,自己手寫類,讓其存儲過程返回各自的結果集。
IMultipleResults result = db.Get_Customer_And_Orders("SEVES"); //返回Customer結果集 IEnumerable<CustomerResultSet> customer = result.GetResult<CustomerResultSet>(); //返回Orders結果集 IEnumerable<OrdersResultSet> orders = result.GetResult<OrdersResultSet>(); //在這里,我們讀取CustomerResultSet中的數據 foreach (CustomerResultSet cust in customer) { Console.WriteLine(cust.CustomerID); }
語句描述:這個實例使用存儲過程返回客戶“SEVES”及其所有訂單
以上是“Linq如何實現多個結果集”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。