ホームページ > バックエンド開発 > C++ > Entity Framework 4.1 の「IEntityChangeTracker の複数のインスタンスによって参照されるエンティティ オブジェクト」例外を解決する方法

Entity Framework 4.1 の「IEntityChangeTracker の複数のインスタンスによって参照されるエンティティ オブジェクト」例外を解決する方法

Linda Hamilton
リリース: 2025-01-08 21:26:47
オリジナル
515 人が閲覧しました

How to Resolve the

Entity Framework 4.1 の「エンティティ オブジェクトが複数の IEntityChangeTracker インスタンスによって参照される」問題を解決します

Entity Framework 4.1 を使用してエンティティ参照を含むエンティティを保存すると、「ADO.Net Entity Framework エンティティ オブジェクトは複数の IEntityChangeTracker インスタンスから参照できません」という例外が発生する場合があります。 この例外は通常、複数の Entity Framework コンテキストが同じエンティティを管理する場合に発生します。

たとえば、コード スニペットでは、2 つのサービス クラス EmployeeServiceCityService がそれぞれ独自のコンテキスト インスタンスを作成します。 city1 エンティティが CityService から取得されると、それは CityService のコンテキストにアタッチされます。その後、e1 従業員エンティティが作成され、その参照が city1 に割り当てられると、両方のエンティティが EmployeeService のコンテキストに追加されます。

その結果、city1 が 2 つの異なるコンテキストにアタッチされ、例外が発生します。

解決策:

方法 1: 単一のコンテキストを使用する

単一のコンテキスト インスタンスを作成し、それを 2 つのサービス クラス EmployeeServiceCityService に挿入します。

<code class="language-csharp">var context = new YourDbContext(); // 创建单例上下文
EmployeeService es = new EmployeeService(context);
CityService cs = new CityService(context); // 使用相同的上下文实例</code>
ログイン後にコピー

方法 2: サービスをマージ

関連するエンティティを 1 つのサービスに統合し、すべてのエンティティの対話を担当します。このアプローチにより、エンティティ間の関係の操作が簡素化されます。

上記の方法により、「エンティティ オブジェクトは複数の IEntityChangeTracker インスタンスから参照できません」という例外を回避し、エンティティ参照を含むエンティティを正常に保存できます。

以上がEntity Framework 4.1 の「IEntityChangeTracker の複数のインスタンスによって参照されるエンティティ オブジェクト」例外を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート