我们直接使用Azure Caching(而不是其中一个可用的Entity Framework包装器)。显然,对于分布式缓存,我们需要序列化对象。不幸的是,这会导致与用于导航属性的延迟加载DbContext基于代理的问题。
我看到我们可以使用自定义序列化程序来将代理映射到空集合(如果未加载)或正常对象(如果已加载),但我不确定如何实现。一种可能的实现可以基于 WCF使用的方法,但我不确定Azure是否同样适用。
理想的解决方案(这就是为什么我指向ProxyDataContractResolver)是:当发生序列化时:
提前感谢!
我看到我们可以使用自定义序列化程序来将代理映射到空集合(如果未加载)或正常对象(如果已加载),但我不确定如何实现。一种可能的实现可以基于 WCF使用的方法,但我不确定Azure是否同样适用。
理想的解决方案(这就是为什么我指向ProxyDataContractResolver)是:当发生序列化时:
- 如果导航属性已加载,则数据将被序列化,就像它是一个普通集合一样,
- 如果它们未加载,则不会被序列化(我希望后者在反序列化后能回到延迟加载状态,但如果不能也可以接受)。
提前感谢!