使用orm框架,基本上都會新增「延遲裝入」的特性支援,當使用entity framwork 的objectcontext與dbcontext運算元據時,預設都使用「延遲裝入」,也就是當我們在應用程式裡通過linq to entity查詢資料時,如果遇到關聯資料尚未裝入時,entity framwork會自動幫我買再向資料庫索取相關資料,全自動地取得相關資料,大幅度降低撰寫訪問相關資料的程式**。
例如:
using system;using system.collections.generic;
namespace mvc.models
public string message
public datetime creaton
public virtual icollectionmembers
}public class member
public string name
public string email
public virtual gustbook gusetbooks
}}假設有個gustbook 物件要取得message欄位的值,只要輸入以下程式即可:
gustbook.message
但如果想要取得gustbook關聯物件member資料表中的name欄位,則通過點語法加上乙個「點」與「屬性名稱」即可:
gustbook.member.name
注意:在code first開發時,若要取得「延遲裝入」特性,必須在屬性宣告加上virture關鍵字,例如上面member表中的
public virtual gustbook gusetbooks
Linq之延遲載入特性
寫在前面 系列文章 延遲載入 總結上篇文章介紹了linq中常見的幾個關鍵字,並列舉了幾個例子,算是對linq如何使用有了初步了解。上篇文章中也提到了,能夠使用linq的場合有乙個要求 實現ienumerable泛型介面,或者型別相容 可以通過cast方法轉換,比如arraylist linq之lam...
Linq之延遲載入特性
寫在前面 系列文章 延遲載入 總結上篇文章介紹了linq中常見的幾個關鍵字,並列舉了幾個例子,算是對linq如何使用有了初步了解。上篇文章中也提到了,能夠使用linq的場合有乙個要求 實現ienumerable泛型介面,或者型別相容 可以通過cast方法轉換,比如arraylist linq之lam...
LINQ中的 延遲查詢 特性
很多標準查詢操作符的設計原型都是返回乙個ienumerable型別的序列,這些標準查詢操作實際上不會在 執行到那一行的時候就返回乙個序列,事實上返回的是乙個物件.當在列舉 比如foreach 這個物件的時候會從ienumerable序列中生成乙個元素,這個時候才會真正執行查詢操作.這就是所謂的 延遲...