0

asp.netWebアプリで最新のEFCodeFirst CTPを使用すると、問題が発生したようです。(今のところ)コードの不足を許してください、しかし私はよく説明しようとします。

私のコントローラーでは、DIコンテナーを介してリポジトリファクトリとIDataContextを注入しています。IDataContextは私のDbContextへの単なるインターフェースであり、リポジトリファクトリ自体にもこれらの1つが注入されます。

私の問題は、リポジトリから(ファクトリから)ユーザーを取得し、using(DataContext)ブロック内にいくつかのプロパティ(挿入されたIDataContext)を追加すると、変更が保存されないことです。

新しいユーザーを作成すると、問題なく機能します。しかし、ユーザーのICollectionにレコードを追加すると、レコードは保持されません。

1つのDataContextを使用してユーザーを作成し、次に別のDataContext(両方ともブロックを使用)を使用してレコードを追加するテストを作成しました。そして、それは正常に機能します(このcreate-dispose-create-disposeシーケンスで)。

私の推測では、コントローラーでは、IDataContextのさまざまなインスタンスが、データベースに送信されるコマンドに影響を与えています。

明日は問題を解決する必要があります。しかし、私が問題を追跡することができなければ、どんな提案もそれでもいいでしょう。

4

1 に答える 1

0

私はなんとかそれを修正することができました。基本的に、DbContextのインスタンスがリクエストごとであることをDependencyResolverに伝える必要がありました。

これにより、誰かの手間が省けることを願っています。

于 2010-12-17T09:19:48.670 に答える