我目前正在阅读 70-516 考试(访问数据)的自定进度培训工具包,并且我在关于实体框架的章节中。
我现在谈到 ObjectContext 并继承 IDisposable 进行清理。这带来了一些我在研究时似乎无法得到确切答案的问题。我只是想了解事情是如何运作的。
场景: 我使用 WCF Ria 和实体框架创建了一个 Silverlight 应用程序,并使用 MVVM Lite 模式。我制作了我的 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 对象设置 null 时,它会对服务器上的 ObjectContext 做任何事情吗?我问这个是因为我从不在域服务中手动创建或处置它。
2) 我知道当我在 Entity Framework 中运行查询时,它会缓存数据。在 RIA 场景中,数据是缓存在客户端应用程序上的 FamilyContext 上,还是仍然驻留在服务器上的 ObjectContext 上?我只是好奇 ObjectContext 是否拥有缓存,因为我的应用程序中的每个视图模型都创建了自己的 FamilyContext 实例,想知道视图模型是否因清理而减轻,但仍然可以利用缓存。
提前致谢。