新聞中心
一旦該entity Key對(duì)應(yīng)的實(shí)體已被加載,ADO.NET Debug就不會(huì)重復(fù)去數(shù)據(jù)庫(kù)去取了,如果該entity key對(duì)應(yīng)實(shí)體沒有被加載,就會(huì)去數(shù)據(jù)庫(kù)去取.所以增加這樣一個(gè)判斷,下面就對(duì)于ADO.NET Debug進(jìn)行詳細(xì)說明。

網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于成都定制網(wǎng)站,高端網(wǎng)頁(yè)制作,對(duì)成都玻璃貼膜等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
在上一文末寫了幾個(gè)關(guān)于用Include加載多級(jí)實(shí)體的查詢,不過前天在forums.mircosoft.com看到一個(gè)關(guān)ADO.NET Debug加載多級(jí)實(shí)體的問題,經(jīng)過一番交流和測(cè)試,算是明白了所以然.雖然自己常常在那樣寫Linq To Entity查詢,也許是因?yàn)樵谑褂玫倪^程中沒有遇到棘手的問題,所以也沒去多想.
在本文之前,還是先說說那個(gè)問題.在edm中這樣的一個(gè)關(guān)系:Customers 1 --- * Orders * --- 1 Status,在這個(gè)關(guān)系下面做這樣一個(gè)查詢 var = query from customer in Customers.Include("Orders.Status") select customer,在調(diào)試的時(shí)候他發(fā)現(xiàn)Customer的Order被及時(shí)加載(ADO.NET Debug卻沒有.所以問題人覺得這是不是EF在設(shè)計(jì)上的緣故,還是其他什么原因.我告訴他不是設(shè)計(jì)上的原因,因?yàn)槲揖统D敲磳?當(dāng)然標(biāo)準(zhǔn)的寫法是Inclue("Orders").Include("Orders.Status").#t#
之前我在adonot blog上看到關(guān)于ADO.NET Debug與 Linq to Entity 在Eager Loading方式上的區(qū)別,也見過那樣寫,當(dāng)然最關(guān)鍵的,我那樣做查詢沒有出先上述的問題.不過我還是在想,難道這個(gè)查詢出現(xiàn)問題是和模型的1:n:1關(guān)系有關(guān)嗎?
以前都沒在意這些,我在使用過類似這種查詢的地方,的確沒有符合這種關(guān)系.于是我昨天做了一個(gè)測(cè)試在Northwind里面恰好有Products 1--* OrderDetails *--1 Orders 符合條件的一組關(guān)系,并做了寫了如下的代碼,一邊debug,一邊跟蹤數(shù)據(jù)庫(kù),的確只生成一條sql.后來我又選了1:n:n以及ADO.NET Debug的關(guān)系組也均都只生成一條sql.
網(wǎng)站欄目:專家分析ADO.NET Debug使用問題
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/ccosgje.html


咨詢
建站咨詢
