Maison > développement back-end > C++ > Comment résoudre l'exception « Objet d'entité référencé par plusieurs instances de IEntityChangeTracker » dans Entity Framework 4.1 ?

Comment résoudre l'exception « Objet d'entité référencé par plusieurs instances de IEntityChangeTracker » dans Entity Framework 4.1 ?

Linda Hamilton
Libérer: 2025-01-08 21:26:47
original
515 Les gens l'ont consulté

How to Resolve the

Résoudre le problème des « objets d'entité sont référencés par plusieurs instances IEntityChangeTracker » dans Entity Framework 4.1

Lors de l'enregistrement d'une entité contenant une référence d'entité à l'aide d'Entity Framework 4.1, vous pouvez rencontrer l'exception « L'objet d'entité ADO.Net Entity Framework ne peut pas être référencé par plusieurs instances de IEntityChangeTracker. » Cette exception se produit généralement lorsque plusieurs contextes Entity Framework gèrent la même entité.

Par exemple, dans l'extrait de code, les deux classes de service EmployeeService et CityService créent respectivement leurs propres instances de contexte. Lorsqu'une entité city1 est récupérée de CityService, elle est attachée au contexte de CityService. Plus tard, lorsque l'entité employé e1 est créée et que sa référence est attribuée à city1, les deux entités sont ajoutées au contexte de EmployeeService.

En conséquence, city1 est attaché à deux contextes différents, provoquant l'exception.

Solution :

Méthode 1 : Utiliser un seul contexte

Créez une seule instance de contexte et injectez-la dans deux classes de service EmployeeService et CityService :

<code class="language-csharp">var context = new YourDbContext(); // 创建单例上下文
EmployeeService es = new EmployeeService(context);
CityService cs = new CityService(context); // 使用相同的上下文实例</code>
Copier après la connexion

Méthode 2 : Fusionner les services

Consolidez les entités associées en un seul service, qui est responsable de toutes les interactions entre les entités. Cette approche simplifie la manipulation des relations entre les entités.

Avec la méthode ci-dessus, vous pouvez éviter l'exception « L'objet entité ne peut pas être référencé par plusieurs instances de IEntityChangeTracker » et enregistrer avec succès l'entité contenant la référence d'entité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal