延遲加載:
優點:只在需要的時候加載數據,不需要預先計划,避免了各種復雜的外連接、索引、視圖操作帶來的低效率問題
使用方式:兩步
第一:在需要延遲加載的屬性前加上virtual ,該屬性的類型可以是任務的集合類型ICOLLOCT<T>或者是0/1..1關聯屬性。
如:
public
virtual
List<Product> Products {
get
;
set
; }
第二:在context構造器中開啟延遲加載功能
ContextOptions.LazyLoadingEnabled =
true
;
缺陷:多次與DB交互,性能降低
阻止延遲加載解決方案:
ToList(),返回的東西是個內存級的對象,就是說強迫它在這里執行了一次SQL語句,查詢到的東西被放在Web服務器內存里了,這樣可以達到緩存的效果,這就阻止了延遲加載
參考:
tks:
http://www.cnblogs.com/sunrfun/archive/2011/05/11/2043053.html