自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linq存儲(chǔ)過(guò)程返回詳解

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

學(xué)習(xí)Linq時(shí),經(jīng)常會(huì)遇到Linq存儲(chǔ)過(guò)程返回問(wèn)題,這里將介紹Linq存儲(chǔ)過(guò)程返回問(wèn)題的解決方法。

存儲(chǔ)過(guò)程

在我們編寫(xiě)程序中,往往需要一些存儲(chǔ)過(guò)程,在LINQ to SQL中怎么使用呢?也許比原來(lái)的更簡(jiǎn)單些。下面我們以NORTHWND.MDF數(shù)據(jù)庫(kù)中自帶的幾個(gè)存儲(chǔ)過(guò)程來(lái)理解一下。

1.標(biāo)量返回

在數(shù)據(jù)庫(kù)中,有名為Customers Count By Region的存儲(chǔ)過(guò)程。該Linq存儲(chǔ)過(guò)程返回顧客所在"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 

我們只要把這個(gè)存儲(chǔ)過(guò)程拖到O/R設(shè)計(jì)器內(nèi),它自動(dòng)生成了以下代碼段:

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

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

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

語(yǔ)句描述:這個(gè)實(shí)例使用Linq存儲(chǔ)過(guò)程返回在“WA”地區(qū)的客戶(hù)數(shù)。

2.單一結(jié)果集

從數(shù)據(jù)庫(kù)中返回行集合,并包含用于篩選結(jié)果的輸入?yún)?shù)。 當(dāng)我們執(zhí)行返回行集合的存儲(chǔ)過(guò)程時(shí),會(huì)用到結(jié)果類(lèi),它存儲(chǔ)從存儲(chǔ)過(guò)程中返回的結(jié)果。

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

  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設(shè)計(jì)器內(nèi),它自動(dòng)生成了以下代碼段:

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

語(yǔ)句描述:這個(gè)實(shí)例使用Linq存儲(chǔ)過(guò)程返回在倫敦的客戶(hù)的 CustomerID和City。

【編輯推薦】

  1. LINQ to DataSet查詢(xún)?cè)斀?/FONT>
  2. Linq實(shí)現(xiàn)XML轉(zhuǎn)換淺談
  3. Linq to SQL強(qiáng)類(lèi)型DataContext
  4. Linq SelectMany學(xué)習(xí)經(jīng)驗(yàn)
  5. 使用LINQ進(jìn)行數(shù)據(jù)轉(zhuǎn)換剖析
責(zé)任編輯:佚名 來(lái)源: CSDN
相關(guān)推薦

2009-09-17 10:04:32

LINQ存儲(chǔ)過(guò)程

2009-09-17 10:27:55

linq存儲(chǔ)過(guò)程

2009-09-15 11:08:01

LinQ調(diào)用存儲(chǔ)過(guò)程

2009-09-17 15:51:39

Linq to sql

2009-09-17 15:22:38

LINQ to SQL

2009-09-13 19:24:33

LINQ存儲(chǔ)過(guò)程

2009-09-17 10:40:23

linq存儲(chǔ)過(guò)程

2009-09-17 11:32:52

LINQ調(diào)用存儲(chǔ)過(guò)程

2020-11-26 10:33:44

MySQL存儲(chǔ)函數(shù)

2021-10-15 06:43:11

數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程

2009-09-15 15:45:00

Linq聯(lián)合查詢(xún)

2009-07-08 17:17:16

JDBC調(diào)用存儲(chǔ)過(guò)程

2011-07-19 17:33:53

存儲(chǔ)過(guò)程javaibatis

2009-09-11 15:12:26

LINQ執(zhí)行存儲(chǔ)過(guò)程

2011-08-23 10:14:09

JDBC更新計(jì)數(shù)行調(diào)用存儲(chǔ)過(guò)程SQL Server

2011-05-18 10:07:13

oracle存儲(chǔ)

2010-03-30 13:19:57

Oracle存儲(chǔ)

2009-09-18 14:51:19

LINQ TO SQL

2009-09-08 17:27:18

LINQ to Dat

2010-05-07 13:03:01

Oracle通過(guò)存儲(chǔ)過(guò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)