EF的三種資料載入方式

2021-09-08 05:13:04 字數 1275 閱讀 4184

ef的關聯實體載入有三種方式:lazy loading,eager loading,explicit loading,其中lazy loading和explicit loading都是延遲載入。

(一)延遲載入(預設):lazy loading使用的是動態**,預設情況下,如果poco類滿足以下兩個條件,ef就使用lazy loading:

poco類是public且不為sealed。

導航屬性標記為virtual。

關閉lazy loading,可以將lazyloadingenabled設為false,如果導航屬性沒有標記為virtual,lazy loading也是不起作用的。

(二)貪婪載入:不設定導航屬性為virtual,並且對導航屬性使用include,eager loading使用include方法關聯預先載入的實體。

(三)顯示載入:不設定導航屬性為virtual,並且對導航屬性使用reference(單個物件).load()或collection(物件集).load()。explicit loading使用entry方法,對於集合使用collection,單個實體則使用reference。

public

class

programm

//貪婪載入

//有多個include會全部完成載入,生成的sql命令是一條完成的

var res2 = db.reservations.include(r =>r.details);

//顯示載入

var res3 =db.reservations.tolist();

foreach (var item in

res3)}}

public

class

reservation

public

string clientname

public

string location

public listdetails

public customer customer

}public

class

reservationdetails

public datetime time

}public

class

customer

public

string name

}public

class

testdbcontext : dbcontext

}

暫時copy記錄,有空再整理

原文:

EF的三種資料載入方式

ef的關聯實體載入有三種方式 lazy loading,eager loading,explicit loading,其中lazy loading和explicit loading都是延遲載入。一 延遲載入 預設 lazy loading使用的是動態 預設情況下,如果poco類滿足以下兩個條件,ef...

EF 三種載入方式

ef資料載入三種方式 延遲載入 飢餓載入 顯示載入 ef中預設是開啟延遲載入 延遲載入 lazy loading 和 的商品列表一樣,下拉重新整理,按需載入。飢餓載入 eager loading 載入父物件時同時載入子物件。顯式載入 explicitly loading 當我們禁用了延遲載入,仍然可...

WPF ListView 的三種資料繫結方式

1.最原始的繫結方式 public observablecollectionobservableobj public mainwindow observableobj.add new observableobj.add new observableobj.add new observableobj....