Azure Caching を直接使用します (使用可能な Entity Framework ラッパーの 1 つを使用するのではありません)。どうやら、分散キャッシュの場合、オブジェクトをシリアル化する必要があります。残念ながら、これにより、ナビゲーション プロパティに使用される遅延ロードされた DbContext ベースのプロキシで問題が発生します。
プロキシを空のコレクション (ロードされていない場合) または通常のオブジェクト (ロードされている場合) にマップするために、カスタムシリアライザーを使用できるようですが、実装についてはわかりません。考えられる実装の 1 つは WCF で使用される実装に基づいている可能性がありますが、Azure が同じように機能するかどうかはわかりません。
理想的な解決策 (そしてそれが ProxyDataContractResolver を指す理由です) は、シリアル化が発生したときに次のようなものになります。
- ナビゲーション プロパティが既に読み込まれている場合、データは通常のコレクションのようにシリアル化されます。
- それらがロードされていない場合、それらはシリアライズされません(後者の場合、デシリアライズ後に遅延ロードが機能することを望みますが、そうでない場合は許容されます)。
エレガントな方法でその問題を手動で修正した人はいますか?
前もって感謝します!