成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

菜鳥對于ADO.NET訪問技術說明詳談

開發 后端
我甚至不明白犧牲數據庫訪問次數相比一次ADO.NET訪問多張表是不是代價更低?也許問題該這么問,相比而言數據庫訪問次數和一次取大數據量那個在應用時更容易成為性能的瓶頸?

 在上一文末寫了幾個關于用Include加載多級實體的查詢,不過前天在ADO.NET訪問看到一個關于Include加載多級實體的問題,經過一番交流和測試,算是明白了所以然.雖然自己常常在那樣寫ADO.NET訪問查詢,也許是因為在使用的過程中沒有遇到棘手的問題,所以也沒去多想.
  
   在本文之前,還是先說說那個問題.在edm中這樣的一個關系:Customers 1 --- * Orders * --- 1 Status,在這個關系下面做這樣一個查詢 var = query from customer in Customers.Include("Orders.Status") ADO.NET訪問在調試的時候他發現Customer的Order被及時加載(PreLoad),Status卻沒有.所以問題人覺得這是不是EF在設計上的緣故,還是其他什么原因.我告訴他不是設計上的原因,因為我就常那么寫,當然標準的寫法是Inclue("Orders").Include("Orders.Status").

之前我在adonot blog上看到關于Linq to Sql與 Linq to Entity 在Eager Loading方式上的區別,也見過那樣寫,ADO.NET訪問當然最關鍵的,我那樣做查詢沒有出先上述的問題.不過我還是在想,難道這個查詢出現問題是和模型的1:n:1關系有關嗎?

以前都沒在意這些,我在使用過類似這種查詢的地方,的確沒有符合這種關系.于是我昨天做了一個測試在ADO.NET訪問里面恰好有Products 1--* OrderDetails *--1 Orders 符合條件的一組關系,并做了寫了如下的代碼,ADO.NET訪問一邊debug,一邊跟蹤數據庫,的確只生成一條sql.后來我又選了1:n:n以及Customer 1:n Order 1:nOrderDetails的關系組也均都只生成一條sql.

在上面這段代碼中,通過getOrderListByCity方法London城市的Orders,并由每一個Order查找相應Customer的CustomerID.由于存在一個循環,故總共訪問數據33次.但是真的是由于Orders.CustomerID有33個嗎?顯然不是,ADO.NET訪問從上圖運行結果來看就知道,其中有很多CustomerID是重復的.那有什么方法阻止數據庫重復查詢呢?.在EF內對于關連實體(導航屬性)除了關聯實體外還有一個屬性**Reference屬性

該屬性暴露了一個屬性IsLoad,判斷關聯實體是否已經加載.在EF中實體是依靠entityKey(數據庫表主鍵)來識別的,一旦該entity Key對應的實體已被加載,context就不會重復去數據庫去取了,如果該entity key對應實體沒有被加載,就會去數據庫去取.所以增加這樣一個判斷

 

責任編輯:chenqingxiang 來源: CSDN
相關推薦

2009-12-21 16:53:06

ADO.NET使用說明

2009-12-24 13:38:07

ADO.NET技術

2009-12-30 15:21:55

ADO.NET訪問

2009-12-23 17:54:01

ADO.NET 2.0

2009-12-21 14:39:09

ADO.NET技巧

2009-12-22 17:43:26

ADO.Net技術

2009-12-23 14:07:09

ADO.NET實例對象

2009-12-18 13:52:39

ADO.NET設計器

2009-12-18 17:06:37

ADO.NET 數據庫

2009-12-23 09:32:26

ADO.NET數據對象

2010-01-04 10:39:33

ADO.NET描述

2009-11-04 17:22:30

ADO.NET數據訪問

2009-12-24 11:04:21

ADO.Net技術

2009-12-24 10:37:03

ADO.NET訪問數據

2009-12-31 09:54:04

ADO.NET數據訪問

2009-12-31 15:39:46

ADO.NET訪問數據

2009-12-21 17:29:43

ADO.NET模型

2009-12-30 16:05:20

ADO.NET實例

2009-12-24 09:34:47

調用ADO.NET

2009-12-22 11:17:58

ADO.NET產品
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产网站在线播放 | 欧美日韩国产在线观看 | www.久久久.com | 日韩中文字幕在线观看 | 日韩av成人 | 国产在线观看免费 | 亚洲欧美日韩成人在线 | 国产美女久久久 | 婷婷综合五月天 | 成人国产精品久久久 | 91影视 | 日日拍夜夜| 狠狠夜夜 | 精品福利在线视频 | 久草在线| 超碰人人爱 | 久久亚洲视频 | 红桃视频一区二区三区免费 | 亚洲精品www久久久久久广东 | 中文字幕在线一区 | 欧美日韩精品亚洲 | 国产一区| 午夜影院在线观看视频 | 综合精品久久久 | 狠狠综合久久av一区二区小说 | 武道仙尊动漫在线观看 | 在线观看视频亚洲 | 一级黄色片免费在线观看 | 尹人av | 亚洲不卡视频 | 99精品电影 | 午夜激情免费视频 | 黄a免费看 | 一区不卡在线观看 | 美国一级片在线观看 | 欧美456| 日本国产精品视频 | 国产黄色av网站 | 欧美网站一区二区 | 欧美成人a∨高清免费观看 91伊人 | 亚洲精品国产电影 |