|
系列文章導(dǎo)航:
Linq To Sql進(jìn)階系列(二)M:M關(guān)系
Linq To Sql進(jìn)階系列(三)CUD和Log
Linq To Sql進(jìn)階系列(四)User Define Function篇
Linq To Sql進(jìn)階系列(五)Store Procedure篇
Linq To Sql進(jìn)階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進(jìn)階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細(xì)節(jié)上的差別
Store Procedure,存儲過程。也是被別人寫過的東西。我習(xí)慣性先看別人都寫了點(diǎn)啥,然后才開始想看看自己還要寫點(diǎn)啥。那就先談?wù)勊cudf的區(qū)別吧。
在Linq To Sql進(jìn)階系列(四)User Define Function篇 中,我們提到了兩者的差別。比如Store Procedure支持多個rowset的,而udf不行。他們還有一些其他的差別。Store Procedure只能返回整型,而udf可以是其他類型,比如char等,除個別類型外,比如imager類型,是不可以做為udf的返回類型的。Store Procedure支持Out Parameter而udf沒有。
1, SingleResultSet
我們先來看這個sprocs.









c.City=@param1

系列文章導(dǎo)航:
Linq To Sql進(jìn)階系列(二)M:M關(guān)系
Linq To Sql進(jìn)階系列(三)CUD和Log
Linq To Sql進(jìn)階系列(四)User Define Function篇
Linq To Sql進(jìn)階系列(五)Store Procedure篇
Linq To Sql進(jìn)階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進(jìn)階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細(xì)節(jié)上的差別
選中該函數(shù)后,右擊屬性。就可以使用其他影射類。但是Linq會對返回的rowset做檢查,如果發(fā)現(xiàn)返回結(jié)果和影射不匹配它會報錯。而且一旦更改了,當(dāng)你需要改回去的時候,你只能在Designer中刪掉此sprocs,然后重新拖過來。
調(diào)用它很簡單,就當(dāng)作一個函數(shù),但是,這里和普通的linq語句不一樣的地方是,它不是延遲加載的。



系列文章導(dǎo)航:
Linq To Sql進(jìn)階系列(二)M:M關(guān)系
Linq To Sql進(jìn)階系列(三)CUD和Log
Linq To Sql進(jìn)階系列(四)User Define Function篇
Linq To Sql進(jìn)階系列(五)Store Procedure篇
Linq To Sql進(jìn)階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進(jìn)階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細(xì)節(jié)上的差別
仔細(xì)比較他們的區(qū)別哦。“好像名字不一樣呢”。暈倒。看主要的。第一個只有一個ElementType子項(xiàng),而第二個有2個。這個地方其實(shí)可以說是OR designer的一個bug。要想修改這個bug,需要更改一個設(shè)計(jì),而推動更改設(shè)計(jì),比較麻煩。但并不是不能改。如果你認(rèn)為這個真的很需要,而且對你很重要,你更喜歡用or designer的話,我建議你去下面的社區(qū)發(fā)帖子。
http://forums.microsoft.com/MSDN/ShowForum.ASPx?ForumID=123&SiteID=1
要求更改此處的問題。因?yàn)椋乙呀?jīng)無力推動他們修復(fù)該bug,ms更樂意聽來自客戶的聲音,說不定你會成功的哦,還有獎勵的哦。
這個sprocs準(zhǔn)確的影射代碼為




DbType="NChar(5)")] string customerID)






系列文章導(dǎo)航:
Linq To Sql進(jìn)階系列(二)M:M關(guān)系
Linq To Sql進(jìn)階系列(三)CUD和Log
Linq To Sql進(jìn)階系列(四)User Define Function篇
Linq To Sql進(jìn)階系列(五)Store Procedure篇
Linq To Sql進(jìn)階系列(六)用object的動態(tài)查詢與保存log篇
Linq To Sql進(jìn)階系列(七)動態(tài)查詢續(xù)及CLR與SQL在某些細(xì)節(jié)上的差別
3,OutParameters
似乎沒有什么好講的,很簡單,當(dāng)作ref 的函數(shù)參數(shù)輸出的。其也只是在生成的函數(shù)里加了這么一句
outParameter = ((System.Nullable<int>)(result.GetParameterValue(1))); 調(diào)用result.GetParameterValue方法,大家要記住這個哦。
4,Return Value
呀,把return value丟那里了。的確,Linq曾舍棄過return value.后來在qa的堅(jiān)持下,dev們決定保留了它。但是,需要你自己去更改code,才能獲得。我們可以從下面這個sprocs上獲得靈感。








it知識庫:Linq To Sql進(jìn)階系列(五)Store Procedure篇,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。