2

NerdDinner が DataContext を破棄しないことに気付きました。それは私には非常に奇妙に思えます。それらには、データ コンテキストのプライベート メンバーを作成する Repository クラスがあります。このメンバーは、リポジトリ クラスの存続期間中存続します。コントローラの構築時にプライベート メンバーとして再度作成されるため、それがどれくらいの長さかは誰にもわかりません。変数であり、逆参照されることはありません。コントローラーが逆参照されるのはいつですか?

この問題は、IQueryable 型を渡すことを中心に展開していると思います。IQueryable 型は、反復処理時に接続が開いている必要があります。しかし、これは、ぶら下がっている開いた接続がいくつかあることを意味しませんか?

4

1 に答える 1

1

リポジトリ自体を使い捨てにします。リポジトリが破棄されるときに、データ コンテキストを破棄します。Controller.Dispose をオーバーライドし、そこでリポジトリを破棄します。ビューが実行されるとき、コントローラーはまだ生きています。

于 2009-11-20T17:49:44.227 に答える