日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LinqDataContext淺談

本文向大家介紹Linq DataContext,可能好多人還不了解Linq DataContext,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

為林口等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及林口網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、林口網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

主鍵緩存

Linq to sql對(duì)查詢過(guò)的對(duì)象進(jìn)行緩存,之后的如果只根據(jù)主鍵查詢一條記錄的話會(huì)直接從緩存中讀取。比如下面的代碼:

 
 
 
  1. Customer c1 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
  2. c1.ContactName = "zhuye";
  3. Customer c2 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");
  4. Response.Write(c2.ContactName);

執(zhí)行后只會(huì)產(chǎn)生一條SQL:

 
 
 
  1. SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].
    [ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].
    [PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax]
  2. FROM [dbo].[Customers] AS [t0]
  3. WHERE [t0].[CustomerID] = @p0
  4. -- @p0: Input String (Size = 5; Prec = 0; Scale = 0) [ANATR]

由于沒有提交修改,所以數(shù)據(jù)庫(kù)中的記錄還是沒有更新。由于這個(gè)特性,我們?cè)谑褂么鎯?chǔ)過(guò)程作為實(shí)體更新方法的時(shí)候就要當(dāng)心了,存儲(chǔ)過(guò)程書寫錯(cuò)誤,即使你提交了修改也很可能導(dǎo)致緩存中的數(shù)據(jù)和數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,引起不必要的麻煩。

Linq DataContext隔離

有的時(shí)候我們會(huì)把對(duì)象從外部傳入Linq DataContext,要求它更新,由于不同的Linq DataContext是相對(duì)獨(dú)立的。由于新的Linq DataContext中還沒有獲取實(shí)體,我們只能通過(guò)附加方式更新數(shù)據(jù)。

首先把Customer表的主鍵字段加上IsVersion標(biāo)識(shí):

 
 
 
  1. [Column(Storage="_CustomerID", DbType="NChar(5) NOT NULL", 
    CanBeNull=false, IsPrimaryKey=true, IsVersion = true)]

運(yùn)行下面的測(cè)試代碼:

 
 
 
  1. Customer c = new Customer { CustomerID = "ALFKI", 
    ContactName = "zhuye", CompanyName = "1111" };
  2. ctx.Customers.Attach(c, true);
  3. ctx.SubmitChanges();

會(huì)捕捉到下面的SQL語(yǔ)句:

 
 
 
  1. UPDATE [dbo].[Customers]
  2. SET [CompanyName] = @p2, [ContactName] = @p3, [ContactTitle] = @p4, 
    [Address] = @p5, [City] = @p6, [Region] = @p7, [PostalCode] = @p8, 
    [Country] = @p9, [Phone] = @p10, [Fax] = @p11
  3. WHERE ([CustomerID] = @p0) AND ([CustomerID] = @p1)
  4. -- @p0: Input StringFixedLength (Size = 5; Prec = 0; Scale = 0) [ALFKI]
  5. -- @p1: Input String (Size = 5; Prec = 0; Scale = 0) [ALFKI]
  6. -- @p2: Input String (Size = 4; Prec = 0; Scale = 0) [1111]
  7. -- @p3: Input String (Size = 5; Prec = 0; Scale = 0) [zhuye]
  8. -- @p4: Input String (Size = 0; Prec = 0; Scale = 0) []
  9. -- @p5: Input String (Size = 0; Prec = 0; Scale = 0) []
  10. -- @p6: Input String (Size = 0; Prec = 0; Scale = 0) []
  11. -- @p7: Input String (Size = 0; Prec = 0; Scale = 0) []
  12. -- @p8: Input String (Size = 0; Prec = 0; Scale = 0) []
  13. -- @p9: Input String (Size = 0; Prec = 0; Scale = 0) []
  14. -- @p10: Input String (Size = 0; Prec = 0; Scale = 0) []
  15. -- @p11: Input String (Size = 0; Prec = 0; Scale = 0) []

網(wǎng)頁(yè)標(biāo)題:LinqDataContext淺談
標(biāo)題網(wǎng)址:http://m.5511xx.com/article/dhgsoed.html