1

私たちは Entity Spaces を使用しており、セッション管理に SqlServer を使用し始めるまで、すべてがローカル開発マシンでうまく機能していました。私たちのホスティング サービス (ITech) にはサーバー ファームがあるため、セッション管理のために SqlServer に対してこれを機能させることが不可欠です。

私たちが見ている問題は、セッションに配置され、後で取得されたオブジェクトの保存にあります。オブジェクトの行状態は、追加などではなく、無効にリセットされています。Entity Spaces に支援を求めると、彼らのアドバイスは、「彼らの」シリアル化メソッドを使用してオブジェクトを文字列に変換し、その文字列をセッションに配置することでした。これを試みたとき、プライマリ オブジェクトは適切にシリアル化されていましたが、オブジェクト グラフ内の子オブジェクトをシリアル化しようとしませんでした。たとえば、借り手のリストがぶら下がっているローン オブジェクトです。ローン自体はシリアル化されますが、借り手のリストはシリアル化されません。

手動でバイナリにシリアル化し、それをセッションに保存すると、オブジェクト グラフ全体が表示されますが、rowstate が適切に設定されていません。「Status」と呼ばれる独自の行状態プロパティを作成することで、この問題を回避することにしました。次に、バイナリにシリアル化する直前に、Status プロパティをオブジェクトの行状態に設定します。次に、rowstate を無効から、オブジェクトを逆シリアル化したときに Status に設定されたものに切り替えます。これはすべてデバッガーで正しく「見えた」のですが、保存するように指示したとき、Entity Spaces は正しい SQL を作成しませんでした。エンティティのプロパティの値なしで保存しようとしました。

他の誰かがこれを試みましたか?もしそうなら、解決策を見つけましたか?

4

0 に答える 0