しばらくの間、すでに解決しようとしている問題があります。
シナリオは次のとおりです
その人は、データベースに新しいエンティティを挿入します。
挿入を開始するには、xml ファイルからコストのかかる変換を行い、いくつかの基本的なプロパティを埋める必要があります。
以前にこの xml を処理し、既に o オブジェクトとして変換されたオブジェクトをキャッシュの短い場所に格納したかったのです。
その後、このオブジェクトの他のプロパティを埋めるプロセスは非常に時間がかかるため、人が途中で停止して戻って終了できるようにしたいと考えています。ただし、このオブジェクトが挿入されたときにデータベースで行われるいくつかの検証のため、このオブジェクトを不完全なデータベースに保存することはできません。
私が片付けた解決策は、人が入力をやめたときにオブジェクトをシリアル化することでした。たとえそれがまだ完了していなくても、人が戻ってきて入力を続けるときよりも、オブジェクトを逆シリアル化して、人が続行できるようにします。
問題は、このオブジェクトをシリアル化しようとすると、遅延ロードのためにほぼデータベース全体を nihibernate シリアル化し、stackoverlow エラーが発生することです (ここでこのエラーを言うのはおかしいです笑)。
誰が私が何をすべきか考えていますか?
私が行ったことの1つは、オブジェクトをキャッシュに保持することでした(/net 4キャッシュがどのようにシリアル化したかはわかりませんが、動作するように継ぎ目があります)が、オブジェクトを取得するたびに、子オブジェクトの半分が失われ、常に正確に半分が失われます子どもたち ....
ライブの場合、キャッシュから取得しようとすると 20 アイテムの注文があり、再度取得しようとすると 10 アイテムで返されます。注文は 5 itens しかありません。
これを解決する方法を知っている人はいますか?
すでにそこで試しています