我們直接使用Azure緩存(而不是通過可用的實體框架包裝器之一)。顯然,對於分佈式緩存,我們需要序列化對象。不幸的是,這導致了用於導航屬性的延遲加載的基於DbContext的代理的問題。序列化Azure緩存的實體框架對象
我看到我們可以使用custom serializer爲了將代理映射到空集合(如果沒有加載)或到普通對象(如果加載),但我不確定實現。一個可能的實現可以基於the one used by WCF,但我不確定Azure是否以相同的方式工作。
理想的解決方案(這就是爲什麼我點ProxyDataContractResolver)將是其中,當序列發生了:
- 如果導航屬性已經被加載,就好像它是一個正常的數據將被序列化收集,
- 如果它們沒有加載,它們將不會被序列化(我希望延遲加載在反序列化之後爲後一種情況回來工作,但如果它沒有的話,它是可以接受的)。
是否有人用優雅的方式手動修復了這個問題?
在此先感謝!
其實這就是我想避免的解決方案,因爲 1)這意味着我需要修改所有的查詢緩存到不使用ProxyCreation 2)我必須做額外的代碼,以包括一些上述關係(這是我們的***架構的問題,不幸的是我們不能使用包括方法) 3)一旦我們找回了延遲加載OB ject緩存將是一件好事 我更新我的原始問題,以顯示此。 –
抱歉沒有獲得賞金 - 我不知道我會完全失去積分 - 我想我可以在之後獎勵這些積分。現在我沒有足夠的;)。 –