日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linq存儲過程返回詳解

學習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.單一結果集

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

下面的示例表示一個存儲過程,該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_City(  
  3. [Parameter(DbType="NVarChar(20)")] string param1)  
  4. {  
  5. IExecuteResult result = this.ExecuteMethodCall(this, (  
  6. (MethodInfo)(MethodInfo.GetCurrentMethod())), param1);  
  7. return ((ISingleResult)  
  8. (result.ReturnValue));  

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

 
 
 
  1. ISingleResult 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。


新聞名稱:Linq存儲過程返回詳解
路徑分享:http://www.dlmjj.cn/article/dhhddsc.html