誰かがIoCコンテナを私に言及したとき、私はMVCに慣れ始めたばかりです。今は数千フィートも落ちてしまい、再びバックアップする必要があります。私はそれらを無視するように誘惑されましたが、コンポーネントライフスタイルを読みました。私のリポジトリLifestyleがPerWebRequestの代わりにシングルトンに設定されている場合、これは大きな問題のようです。説明したように、私はデータベースの更新に対するコミットされていない変更がリークする可能性があります。MVC IoCコンポーネントライフスタイルPerWebRequest
私の質問... コンポーネントライフスタイルを作成する方法は、IoCコンテナを使用せずに影響するか、それとも唯一のオプションですか?
ありがとうございます...私のコードをデカップリングするのはいいです*しかし、現時点では私にとっては重要ではありません。しかし、要求を越えたデータの整合性は重要です。私の懸念は、IoCなしでは、私のアプリが潜在的な腐敗問題に何らかの形で対応していることです。 (注:私はMVCを使って実際のアプリケーションを実装していません - デモアプリケーションはわずか4〜5つです。この2冊の本を読んでいるところですが、IoCコンテナの主題によってループが起こりました) – dizzyguy
"Your * SqlProductsRepository "現在のところ、このシングルトンのライフスタイルを持っているので、あなたのアプリケーションが実行されている限り、すべての要求を共有する限り、単一のLINQをSQL * DataContext *に維持しています。それはうまくいくかもしれません...すべてのデータアクセスは読み取り専用ですが、データの編集を開始すると問題が発生するためです。コミットされていない変更は要求を越えて漏れ始めるでしょう」 - Pro ASP.NET MVC Framework、P. 101 – dizzyguy
コントローラまたはサービスでデータコンテキストのインスタンスをインスタンス化し、そのトランザクションのリポジトリまたはリポジトリに "注入"する場合。その後、コミットをコールし、データコンテキストのisntanceを "大丈夫"にする必要はありません。アプリケーションのライフサイクルからdatacontextを開いたままにすることはありません。トランザクションの範囲外ではありません。私はそれを行う安全な方法であることが分かった。 –