EF載入實體的方式

2022-02-19 10:22:06 字數 1296 閱讀 8680

原文:

loading related entities

ef載入資料的方式:

預載入 eager loading

延遲載入 lazy loading

顯示載入 explicit loading

預先載入會載入所有相關的實體,通過include方法來實現

1

using (var context = new

bloggingcontext())

2

view code

預先載入也支援多層級載入相關的實體

1

using (var context = new

bloggingcontext())

2

view code

延遲載入只有相關的屬性被訪問時才去載入,延遲載入的的實現是在導航屬性前加上virtual

1

public

class

blog 2

4public

string name

5public

string url

6public

string tags 78

public

virtual icollectionposts

9 }

view code

對於包含導航屬性的實體,如果要序列化最好關閉延遲載入

對於所有的實體都關閉延遲載入可以在context中設定

1

public

class

bloggingcontext : dbcontext 2

7 }

view code

儘管延遲載入被禁用,仍然可以使用系顯示載入去載入相關的實體

1

using (var context = new

bloggingcontext()) 220

//reference放法在導航屬性對應乙個單獨的實體時使用

21//

collection 方法在導航屬性對應乙個實體集合時使用

view code

當顯示載入相關實體時可以使用filters

1

using (var context = new

bloggingcontext()) 220

21using (var context = new

bloggingcontext())

22

view code

EF 分離實體

具體步驟 新建測試專案 如圖 其中respository和model層均為類庫專案,1.在respository層新增ado.net實體資料模型,2.複製model.tt檔案到model層,這是會發生乙個錯誤不用理會它,開啟model.tt檔案,修改const string inputfile mo...

EF實體配置

ef 有 中的模型類的配置有 dataannotations fluentapi 兩種 1.dataannotations 實體類屬性上標註attribute 必填字段標註 required 字段長度 maxlength 5 用 可空字段用 int?如果欄位在資料庫有預設值,則要在屬性上標註 dat...

EF 三種載入方式

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