您好,登錄后才能下訂單哦!
這篇文章給大家介紹LINQ中怎么調用存儲過程,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
LINQ調用存儲過程實現起來一點都不容易,就像其它的存儲過程一樣,需要很強的邏輯性與實用性。
LINQ調用存儲過程時出現的問題被customer問了多次了,我想問題雖小,但可能對大家有幫助,就順便寫下來和大家分享。
問題是這樣的,在LINQ調用存儲過程時,很多customer不知道怎么去接受返回的結果集。所以很多人就這樣做了,當然,看起來是能理解的:
SampleDataContext test = new SampleDataContext(); IEnumerable retVal = test.sp(); // error here!
但是在編譯時就會出錯,報一個類型轉換的錯誤。其實在LINQ調用存儲過程時,LINQ調用存儲過程會自動為返回的結果集生成一個類型,類型的名字是由 SP名+"Result" 組成。
如SP名是sp,那么生成的類型就是 spResult。而調用SP時所返回的結果集就是 ISingleResult
現在大家應該知道該怎么做了吧?Try下如下代碼:
SampleDataContext test = new SampleDataContext(); ISinlgeResult retValue = test.sp(); foreach(spResult value in retValue) { string field = value.field; }
知道了怎么做還遠遠不夠,建議大家去看看LINQ調用存儲過程自動生成的代碼。如果有這樣的習慣,相信大家很容易就能自己解決問題了。不過LINQ-SQL還有個小bug,如SingleResult所暗示的一樣,它還不能為我們生成MultipleResults,如SP中含有兩條Select語句時。
關于LINQ中怎么調用存儲過程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。