1

私は、カスタムリポジトリクラスに基づいて動作するカスタムASP.NETメンバーシッププロバイダーを実装しています。このクラスは、データにアクセスする手段としてEntityFrameworkDbContextを使用します。

これはASP.NETMVCアプリケーションであるため、IoCコンテナー(Ninject)は、DbContextInRequestScopeのインスタンスを解決するように設定されています。

私のユーザーデータテーブルは、単一のメインDbContextの一部です。

リポジトリクラスもInRequestScopeでインスタンス化するようにバインドされています。ただし、リポジトリクラスは、InRequestScopeをインスタンス化するように設定できないカスタムMembershipProviderのニーズを満たすために作成されます。その結果、リポジトリを介してロールデータにアクセスしようとすると、DbContextがすでに破棄された例外が発生します。

誰かが同様の構成を設定しましたか?もしそうなら、私が抱えている問題を克服するために異なる方法で実装されたもの。ありがとう。

4

1 に答える 1

0

プロジェクト開発を続行できる回避策は、Ninjectにインジェクトさせるのとは対照的に、メンバーシッププロバイダーコンストラクターでDbContextのインスタンスを手動で作成することでした。

誰かが最終的にこの特定の問題へのより良いアプローチを思い付くかもしれません。ここに投稿してください。この回避策ではなく、回答としてコメントします。

于 2012-08-22T21:55:25.560 に答える