偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Linq存儲過程返回詳解

開發(fā) 后端
這里介紹Linq存儲過程返回,從數(shù)據(jù)庫中返回行集合,并包含用于篩選結(jié)果的輸入?yún)?shù)。 當我們執(zhí)行返回行集合的存儲過程時,會用到結(jié)果類,它存儲從存儲過程中返回的結(jié)果。

學習Linq時,經(jīng)常會遇到Linq存儲過程返回問題,這里將介紹Linq存儲過程返回問題的解決方法。

存儲過程

在我們編寫程序中,往往需要一些存儲過程,在LINQ to SQL中怎么使用呢?也許比原來的更簡單些。下面我們以NORTHWND.MDF數(shù)據(jù)庫中自帶的幾個存儲過程來理解一下。

1.標量返回

在數(shù)據(jù)庫中,有名為Customers Count By Region的存儲過程。該Linq存儲過程返回顧客所在"WA"區(qū)域的數(shù)量。

  1. ALTER PROCEDURE [dbo].[NonRowset]  
  2. (@param1 NVARCHAR(15))  
  3. AS  
  4. BEGIN  
  5. SET NOCOUNT ON;  
  6. DECLARE @count int  
  7. SELECT @count = COUNT(*)FROM Customers   
  8. WHERECustomers.Region = @Param1  
  9. RETURN @count  
  10. END 

我們只要把這個存儲過程拖到O/R設計器內(nèi),它自動生成了以下代碼段:

  1. [Function(Name = "dbo.[Customers Count By Region]")]  
  2. public int Customers_Count_By_Region([Parameter  
  3. (DbType = "NVarChar(15)")] string param1)  
  4. {  
  5. IExecuteResult result = this.ExecuteMethodCall(this,  
  6. ((MethodInfo)(MethodInfo.GetCurrentMethod())), param1);  
  7. return ((int)(result.ReturnValue));  

我們需要時,直接調(diào)用就可以了,例如:

  1. int count = db.CustomersCountByRegion("WA");  
  2. Console.WriteLine(count); 

語句描述:這個實例使用Linq存儲過程返回在“WA”地區(qū)的客戶數(shù)。

2.單一結(jié)果集

從數(shù)據(jù)庫中返回行集合,并包含用于篩選結(jié)果的輸入?yún)?shù)。 當我們執(zhí)行返回行集合的存儲過程時,會用到結(jié)果類,它存儲從存儲過程中返回的結(jié)果。

下面的示例表示一個存儲過程,該Linq存儲過程返回客戶行并使用輸入?yún)?shù)來僅返回將“London”列為客戶城市的那些行的固定幾列。 

  1. ALTER PROCEDURE [dbo].[Customers By City]  
  2. -- Add the parameters for the stored procedure here  
  3. (@param1 NVARCHAR(20))  
  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 CustomerID, ContactName, CompanyName, City from   
  10. Customers as c where c.City=@param1  
  11. END 

拖到O/R設計器內(nèi),它自動生成了以下代碼段:

  1. [Function(Name="dbo.[Customers By City]")]  
  2. public ISingleResult<Customers_By_CityResult> Customers_By_City(  
  3. [Parameter(DbType="NVarChar(20)")] string param1)  
  4. {  
  5. IExecuteResult result = this.ExecuteMethodCall(this, (  
  6. (MethodInfo)(MethodInfo.GetCurrentMethod())), param1);  
  7. return ((ISingleResult<Customers_By_CityResult>)  
  8. (result.ReturnValue));  

我們用下面的代碼調(diào)用:

  1. ISingleResult<Customers_By_CityResult> result =  
  2. db.Customers_By_City("London");  
  3. foreach (Customers_By_CityResult cust in result)  
  4. {  
  5. Console.WriteLine("CustID={0}; City={1}", cust.CustomerID,  
  6. cust.City);  

語句描述:這個實例使用Linq存儲過程返回在倫敦的客戶的 CustomerID和City。

【編輯推薦】

  1. LINQ to DataSet查詢詳解
  2. Linq實現(xiàn)XML轉(zhuǎn)換淺談
  3. Linq to SQL強類型DataContext
  4. Linq SelectMany學習經(jīng)驗
  5. 使用LINQ進行數(shù)據(jù)轉(zhuǎn)換剖析
責任編輯:佚名 來源: CSDN
相關推薦

2009-09-17 10:04:32

LINQ存儲過程

2009-09-17 10:27:55

linq存儲過程

2009-09-15 11:08:01

LinQ調(diào)用存儲過程

2009-09-17 15:22:38

LINQ to SQL

2009-09-17 15:51:39

Linq to sql

2009-09-13 19:24:33

LINQ存儲過程

2009-09-17 10:40:23

linq存儲過程

2009-09-17 11:32:52

LINQ調(diào)用存儲過程

2020-11-26 10:33:44

MySQL存儲函數(shù)

2021-10-15 06:43:11

數(shù)據(jù)庫存儲過程

2009-09-15 15:45:00

Linq聯(lián)合查詢

2009-07-08 17:17:16

JDBC調(diào)用存儲過程

2009-09-11 15:12:26

LINQ執(zhí)行存儲過程

2011-07-19 17:33:53

存儲過程javaibatis

2011-08-23 10:14:09

JDBC更新計數(shù)行調(diào)用存儲過程SQL Server

2011-05-18 10:07:13

oracle存儲

2009-09-18 14:51:19

LINQ TO SQL

2009-09-08 17:27:18

LINQ to Dat

2010-03-30 13:19:57

Oracle存儲

2009-09-14 16:17:03

什么是LINQ To
點贊
收藏

51CTO技術棧公眾號