我试图弄清楚如何在 Azure AppFabric 缓存中缓存 EF 查询结果。目前我正在使用 LoreSoft EntityFramework 扩展来处理缓存(http://bit.ly/LWSywm)。它与内存缓存完美配合,但与跨多个 VM 的 AppFabric 配合得并不好。问题是我的 EF 对象中有虚拟属性,它们被序列化为动态代理对象,当然不能在不同的 VM 上反序列化,甚至在单个 VM 重新启动应用程序之后也不能反序列化。
我只有几个需要缓存的查询,所以我不想在整个项目中手动加载每个相关的对象。有什么方法可以序列化具有虚拟属性的 EF 对象?在我反序列化它们之后,我不需要虚拟属性神奇地再次开始延迟加载。我尝试在序列化结果之前关闭延迟加载 DbContext,但这不起作用。我发现获得可序列化 EF 对象的唯一方法是删除所有虚拟属性。
顺便说一句,我在这里看过 Julie Lerman 的文章:http: //bit.ly/LWToZT
似乎是一个很酷的项目,但我不完全确定它会解决我无法序列化 EF 对象的问题。如果我只想在我开始的地方结束,就不想走那条路。
任何想法最受赞赏!