天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Linq To Sql進階系列(五)Store Procedure篇

系列文章導航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態查詢與保存log篇

Linq To Sql進階系列(七)動態查詢續及CLR與SQL在某些細節上的差別


Store Procedure,存儲過程。也是被別人寫過的東西。我習慣性先看別人都寫了點啥,然后才開始想看看自己還要寫點啥。那就先談談它與udf的區別吧。

Linq To Sql進階系列(四)User Define Function篇 中,我們提到了兩者的差別。比如Store Procedure支持多個rowset的,而udf不行。他們還有一些其他的差別。Store Procedure只能返回整型,而udf可以是其他類型,比如char等,除個別類型外,比如imager類型,是不可以做為udf的返回類型的。Store Procedure支持Out Parameter而udf沒有。

1, SingleResultSet
我們先來看這個sprocs.

CREATE PROCEDURE [dbo].[Customers By City]
    
-- Add the parameters for the stored procedure here
    (@param1 NVARCHAR(20))
AS
BEGIN
    
-- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    
SELECT CustomerID, ContactName, CompanyName, City from Customers as c where
 c.City
=@param1
END

系列文章導航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態查詢與保存log篇

Linq To Sql進階系列(七)動態查詢續及CLR與SQL在某些細節上的差別


選中該函數后,右擊屬性。就可以使用其他影射類。但是Linq會對返回的rowset做檢查,如果發現返回結果和影射不匹配它會報錯。而且一旦更改了,當你需要改回去的時候,你只能在Designer中刪掉此sprocs,然后重新拖過來。
調用它很簡單,就當作一個函數,但是,這里和普通的linq語句不一樣的地方是,它不是延遲加載的。

            DataClasses1DataContext db = new DataClasses1DataContext();
            db.Log 
= Console.Out;
            var q 
= db.Customers_By_City("London");

系列文章導航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態查詢與保存log篇

Linq To Sql進階系列(七)動態查詢續及CLR與SQL在某些細節上的差別


仔細比較他們的區別哦。“好像名字不一樣呢”。暈倒。看主要的。第一個只有一個ElementType子項,而第二個有2個。這個地方其實可以說是OR designer的一個bug。要想修改這個bug,需要更改一個設計,而推動更改設計,比較麻煩。但并不是不能改。如果你認為這個真的很需要,而且對你很重要,你更喜歡用or designer的話,我建議你去下面的社區發帖子。
http://forums.microsoft.com/MSDN/ShowForum.ASPx?ForumID=123&SiteID=1
要求更改此處的問題。因為,我已經無力推動他們修復該bug,ms更樂意聽來自客戶的聲音,說不定你會成功的哦,還有獎勵的哦。
這個sprocs準確的影射代碼為

        [Function(Name="dbo.Get Customer And Orders")]
        [ResultType(
typeof(GetCustomerAndOrdersResult1))]
        [ResultType(
typeof(GetCustomerAndOrdersResult2))]
        
public IMultipleResults GetCustomerAndOrders([Parameter(Name="CustomerID",
DbType
="NChar(5)")] string customerID)
        
{
            IExecuteResult result 
= this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), customerID);
            
return ((IMultipleResults)(result.ReturnValue));
        }

系列文章導航:

Linq To Sql進階系列(一)從映射講起

Linq To Sql進階系列(二)M:M關系

Linq To Sql進階系列(三)CUD和Log

Linq To Sql進階系列(四)User Define Function篇

Linq To Sql進階系列(五)Store Procedure篇

Linq To Sql進階系列(六)用object的動態查詢與保存log篇

Linq To Sql進階系列(七)動態查詢續及CLR與SQL在某些細節上的差別


3,OutParameters
似乎沒有什么好講的,很簡單,當作ref 的函數參數輸出的。其也只是在生成的函數里加了這么一句
outParameter =  ((System.Nullable<int>)(result.GetParameterValue(1))); 調用result.GetParameterValue方法,大家要記住這個哦。

4,Return Value
呀,把return value丟那里了。的確,Linq曾舍棄過return value.后來在qa的堅持下,dev們決定保留了它。但是,需要你自己去更改code,才能獲得。我們可以從下面這個sprocs上獲得靈感。

CREATE PROCEDURE [dbo].[CustOrderTotal] 
@CustomerID nchar(5),
@TotalSales money OUTPUT
AS
SELECT @TotalSales = SUM(OD.UNITPRICE*(1-OD.DISCOUNT) * OD.QUANTITY)
FROM ORDERS O, "ORDER DETAILS" OD
where O.CUSTOMERID = @CustomerID AND O.ORDERID = OD.ORDERID

it知識庫Linq To Sql進階系列(五)Store Procedure篇,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美日韩亚洲第一区在线 | 亚洲乱码国产乱码精品精98 | 国产午夜精品久久久久婷婷 | 日韩一区二区三区四区区区 | 黑人强伦姧人妻日韩那庞大的 | 麻豆蜜桃国语精品无码视频 | 欧美双拳极限扩张 | 97蜜桃网123.com | 日韩熟女精品一区二区三区 | 国产免费播放一区二区三区 | 久久4k岛国高清一区二区 | 人妻天天爽夜夜爽三区麻豆A片 | 高潮久久久久久久久不卡 | 99视频国产在线 | 中国xxxxxz| 大香网伊人久久综合观看 | 国产精品v欧美精品v日韩 | 亚洲国产精品一区二区三区在线观看 | 9420高清完整版在线电影免费观看 | 亚洲精品国产熟女久久久 | 国产 高清 无码 中文 | 日本熟妇多毛XXXXX视频 | a毛片基地免费全部视频 | 无码人妻丰满熟妇啪啪网不卡 | 国产午夜久久影院 | 日本高清免费一本在线观看 | 寂寞护士中文字幕 mp4 | 中文字幕欧美日韩VA免费视频 | 99视频精品在线 | 黄色三级在线观看 | 1a级毛片免费观看 | 女仆乖H调教跪趴 | 国产人妻777人伦精品HD | h版动漫在线播放的网站 | 九色PORNY真实丨国产大胸 | 男人狂躁进女人免费视频公交 | 欧美GV肉片视频免费观看 | 6080yy 久久 亚洲 日本 | 果冻传媒在线观看网站 | 亚洲国产亚综合在线区尤物 | 亚洲区视频在线观看 |