2016-03-21 11 views
0

私はUnitOfWorkパターンガイドラインとEntityFrameworkで.net Webアプリケーションを作成しています。Context.ChangeTracker.Entries()はInvalidOperationExceptionをスローします

Context.ChangeTracker.Entries()メソッドがInvalidOperatioExceptionをスローしています。

メッセージ: "エンティティオブジェクトは、IEntityChangeTrackerの複数のインスタンスで参照できません。"

コードが大きすぎて複数のレイヤーが含まれているため、ここにコードを貼り付けることはできません。

UnitOfWork Patternを使用しているので、私は、コンテキストの単一のインスタンスに対してのみ作業していることを非常に確信しています。どのような場合にこのエラーが発生するのですか?どのエンティティがこの問題を引き起こしているか把握できますか?

+0

*私はコンテキストの単一のインスタンスだけで作業していることを非常に確信しています*私はトラッカーを変更するためのコンテキストを見たことがありません... –

答えて

1

依存インジェクタを使用している場合は、DIコンテナまたはファクトリに要求ごとに1つのインスタンスを作成するように依頼します。これにより、作成されたDbContextの1つのインスタンスが確実に確認されます。

+0

私は作業単位をサービスに渡していますサービスはunitOfWork内に存在するコンテキスト上で動作し、同じunitOfWorkは後続のレイヤ/メソッドに渡されます。 – DivideByzero

+0

エンティティフレームワークdbcontextのインスタンスを作成する責任は何ですか?はっきりとエラーメッセージから、いくつかの他のインスタンスが作成されていますが、あなたは巨大なコードベースを持っているので気づかないかもしれません。なぜなら、 –

関連する問題