レポートに使用しているデータベースにいくつかのストアド プロシージャを作成しました。次に、LINQ-to-SQL を使用してストアド プロシージャを DBML ファイルに取り込み、実際の C# 関数を作成しました。データ抽出は、WCF サービスを介して提供されます。
私が今抱えているジレンマは、関数からストアド プロシージャを実行し、新しいゲームの統計をアップロードしてから、ストアド プロシージャを再度実行すると (使用の間に DataContext を破棄する)、新しいゲームの統計がなかったかのように結果セットを取得することです。アップロードされていません。ただし、ストアド プロシージャをデータベースに対して直接実行すると、正しい結果セットが得られます。
私にとって、これは対処方法がわからないいくつかの可能性を示しています。
- サービスはストアド プロシージャの結果を何らかの形でキャッシュしていますが、DataContext を破棄しているとは思えません。
- どういうわけか、ストアド プロシージャは DataContext の残りの状態を無視しています
- まったく別のもの
私は DataContext. Refresh() が問題を解決すると考えていますが、それによるパフォーマンスの低下を回避できれば、どんな助けもいただければ幸いです。