【发布时间】:2012-02-17 07:52:52
【问题描述】:
我们在 Windows Azure 环境中使用 Entity Framework,直到现在我们使用 InProc 会话状态,但你们中的一些人可能知道,由于它是分布式的,我们应该使用另一种方法,这就是我们激活 Azure 的原因AppFabric 缓存。
激活此会话状态提供程序时,我们开始出现以下异常:
ObjectDisposedException: The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.]
System.Data.Objects.ObjectContext.EnsureConnection() +11658009
System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +66
System.Data.Objects.DataClasses.EntityCollection`1.Load(List`1 collection, MergeOption mergeOption) +271
System.Data.Objects.DataClasses.RelatedEnd.DeferredLoad() +499
System.Data.Objects.Internal.LazyLoadBehavior.LoadProperty(TItem propertyValue, String relationshipName, String targetRoleName, Boolean mustBeNull, Object wrapperObject) +136
System.Data.Objects.Internal.<>c__DisplayClass7`2.<GetInterceptorDelegate>b__1(TProxy proxy, TItem item) +153
System.Data.Entity.DynamicProxies.SysUser_1A4439A55EAE70AD5C976139AA3A390B54A2C96E5FA605B3F364F0ADF52D0707.get_Assignments() +151
WriteSysUser_1A4439A55EAE70AD5C976139AA3A390B54A2C96E5FA605B3F364F0ADF52D0707ToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract ) +544
...
当 AppFabric 尝试序列化 EF 对象以进行缓存时,似乎会引发此异常。
我们使用的 EF 带有 LazyLoading 和 ProxyCreation 标志都处于活动状态,在这种情况下似乎不支持,但它在 InProc Session 状态管理中。
我们正在寻找一些关于如何将 Azure AppFabric 会话状态提供程序与 EF 一起使用的建议,同时保持延迟加载。
谢谢, 瑞
【问题讨论】:
标签: entity-framework session azure