原文:
loading related entities
ef載入資料的方式:
預載入 eager loading
延遲載入 lazy loading
顯示載入 explicit loading
預先載入會載入所有相關的實體,通過include方法來實現
1view codeusing (var context = new
bloggingcontext())
2
預先載入也支援多層級載入相關的實體
1view codeusing (var context = new
bloggingcontext())
2
延遲載入只有相關的屬性被訪問時才去載入,延遲載入的的實現是在導航屬性前加上virtual
1view codepublic
class
blog 2
4public
string name
5public
string url
6public
string tags 78
public
virtual icollectionposts
9 }
對於包含導航屬性的實體,如果要序列化最好關閉延遲載入
對於所有的實體都關閉延遲載入可以在context中設定
1view codepublic
class
bloggingcontext : dbcontext 2
7 }
儘管延遲載入被禁用,仍然可以使用系顯示載入去載入相關的實體
1view codeusing (var context = new
bloggingcontext()) 220
//reference放法在導航屬性對應乙個單獨的實體時使用
21//
collection 方法在導航屬性對應乙個實體集合時使用
當顯示載入相關實體時可以使用filters
1view codeusing (var context = new
bloggingcontext()) 220
21using (var context = new
bloggingcontext())
22
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 當我們禁用了延遲載入,仍然可...