私の解決策は次のように分かれています。
- データプロジェクト-EntityFrameworkを保持します
- ビジネスロジック/サービスプロジェクト-ビジネスロジックを実装する/データに対して他の作業を行うクラスが含まれています
- MVC3プロジェクト
私がこれを設定する方法は、サービスクラスがエンティティフレームワークを含むように機能することです。エンティティフレームワークをラップするリポジトリを作成するために依存性注入を使用しています。私が直面している問題は、リポジトリがninjectを介して作成されるたびに、新しいEFコンテキストが作成されるため、すべての変更が保存されるわけではないということです。私はサービスプロジェクトとMVCプロジェクトの両方にNinjectバインディングを持っていることに注意してください。ここで話しているのは、バインディングがクラスライブラリにある場合です。
私が行った調査に基づくと、同じコンテキストが使用されるようにInRequestScopeを使用することが推奨されているようです。ただし、これをMVCプロジェクト/ Webプロジェクトではなくクラスライブラリで使用しているので、クラスライブラリ(AppStartフォルダーなどすべてを作成する場所)でNinject.Web.Commonを使用するのは理にかなっていますか?
または、これを処理する別の方法はありますか?