我目前正在閱讀70-516考試(訪問數據)的自定進度培訓工具包,我正在閱讀關於實體框架的章節。實體框架使用WCF的ObjectContext生命週期Ria
我在談論ObjectContext並且它繼承IDisposable進行清理的一點。這提出了幾個問題,我似乎無法在研究時得到確切的答案。我只是想了解事情是如何運作的。
場景: 我使用WCF RIA和Entity Framework創建一個Silverlight應用程序,並使用MVVM精簡版模式。我做了我的EDMX並創建了一個名爲FamilyService的域服務,我在Silverlight應用程序中將它用作FamilyContext。我創建了一個名爲GetFamilyMembers的方法,該方法返回FamilyMember表中的數據。
[EnableClientAccess()]
public partial class FamilyService : LinqToEntitiesDomainService<FamilyEntities>
{
public IQueryable<FamilyMember> GetFamilyMembers()
{
return this.ObjectContext.FamilyMembers;
}
}
在ViewModel中,我創建了一個FamilyContext的實例,並在清理時將其清零。
1)當我無效FamilyContext對象時,它是否對服務器上的ObjectContext執行任何操作?我問這是因爲我從來沒有在域服務中手動創建或處理它。
2)我明白,當我在Entity Framework中運行查詢時,它會緩存數據。在RIA場景中,在客戶端應用程序的FamilyContext上執行數據緩存還是駐留在服務器上的ObjectContext上?我只是好奇ObjectContext是否擁有緩存,因爲我的應用程序中的每個視圖模型都創建了它自己的FamilyContext實例,想知道是否清除了視圖模型,但是仍然可以利用緩存。
在此先感謝。
你不創建或處理'ObjectContext'?怎麼可能? –
我不手動做到這一點,我假設它在LinqToEntitiesDomainService基類中?更新問題 –