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

LINQ調(diào)用存儲過程的實現(xiàn)方法

開發(fā) 后端
在LINQ調(diào)用存儲過程時,LINQ調(diào)用存儲過程會自動為返回的結(jié)果集生成一個類型,類型的名字是由 SP名+"Result" 組成。

LINQ調(diào)用存儲過程實現(xiàn)起來一點都不容易,就像其它的存儲過程一樣,需要很強的邏輯性與實用性。

LINQ調(diào)用存儲過程時出現(xiàn)的問題被customer問了多次了,我想問題雖小,但可能對大家有幫助,就順便寫下來和大家分享。

問題是這樣的,在LINQ調(diào)用存儲過程時,很多customer不知道怎么去接受返回的結(jié)果集。所以很多人就這樣做了,當(dāng)然,看起來是能理解的:

  1. SampleDataContext test = new SampleDataContext();  
  2. IEnumerable retVal = test.sp();   // error here! 

但是在編譯時就會出錯,報一個類型轉(zhuǎn)換的錯誤。其實在LINQ調(diào)用存儲過程時,LINQ調(diào)用存儲過程會自動為返回的結(jié)果集生成一個類型,類型的名字是由 SP名+"Result" 組成。

如SP名是sp,那么生成的類型就是 spResult。而調(diào)用SP時所返回的結(jié)果集就是 ISingleResult。至于為什么會報類型轉(zhuǎn)換錯誤呢,很簡單,ISingleResult和IEnumerable不能互轉(zhuǎn)。

現(xiàn)在大家應(yīng)該知道該怎么做了吧?Try下如下代碼:

  1. SampleDataContext test = new SampleDataContext();  
  2. ISinlgeResult retValue = test.sp();  
  3. foreach(spResult value in retValue)  
  4. {  
  5.    string field = value.field;  

知道了怎么做還遠(yuǎn)遠(yuǎn)不夠,建議大家去看看LINQ調(diào)用存儲過程自動生成的代碼。如果有這樣的習(xí)慣,相信大家很容易就能自己解決問題了。不過LINQ-SQL還有個小bug,如SingleResult所暗示的一樣,它還不能為我們生成MultipleResults,如SP中含有兩條Select語句時。

【編輯推薦】

  1. 詳談Linq查詢結(jié)果分析的方法
  2. 簡簡單單學(xué)習(xí)Linq查詢語法
  3. 詳細(xì)闡述Linq插入數(shù)據(jù)的操作方法
  4. 淺析Linq插入數(shù)據(jù)的實現(xiàn)方法
  5. 簡單解決Linq多條件組合問題
責(zé)任編輯:阡陌 來源: 博客園
相關(guān)推薦

2009-09-15 11:08:01

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

2010-10-29 16:12:51

Oracle存儲過程

2009-09-17 10:40:23

linq存儲過程

2009-09-11 15:12:26

LINQ執(zhí)行存儲過程

2010-10-09 16:26:59

mysql存儲過程

2009-09-17 10:04:32

LINQ存儲過程

2012-03-01 13:34:02

Java

2009-09-13 19:24:33

LINQ存儲過程

2009-09-09 10:54:52

Linq存儲過程返回

2009-09-09 13:18:26

Linq Submit

2009-09-09 09:59:08

Linq調(diào)用LoadP

2017-09-04 11:48:56

MybatisOracle存儲過程

2009-08-06 18:02:22

存儲過程

2009-09-14 16:29:39

LINQ嵌套

2009-09-17 15:51:39

Linq to sql

2009-09-17 15:22:38

LINQ to SQL

2009-09-17 10:27:55

linq存儲過程

2009-06-17 10:33:17

Hibernate 存

2011-09-01 13:43:23

VC調(diào)用SQL Ser

2010-10-28 10:10:48

oracle存圖片
點贊
收藏

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