【发布时间】:2012-10-02 00:49:28
【问题描述】:
我目前正在阅读 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 对象设为空时,它会对服务器上的 ObjectContext 做任何事情吗?我问这个是因为我从不在域服务中手动创建或处置它。
2) 我了解当我在 Entity Framework 中运行查询时,它会缓存数据。在 RIA 场景中,数据是缓存在客户端应用程序上的 FamilyContext 上,还是仍然驻留在服务器上的 ObjectContext 上?我只是好奇 ObjectContext 是否持有缓存,因为我的应用程序中的每个视图模型都创建了自己的 FamilyContext 实例,想知道视图模型是否因清理而变亮但仍然可以利用缓存。
提前致谢。
【问题讨论】:
-
您不创建或处置
ObjectContext?怎么可能? -
我不手动做,我假设它在 LinqToEntitiesDomainService 基类中?更新问题
标签: c# silverlight entity-framework-4 wcf-ria-services