Maison >développement back-end >C++ >Comment puis-je définir correctement les délais d'expiration des commandes dans Entity Framework pour éviter les délais d'attente d'importation de fonctions ?

Comment puis-je définir correctement les délais d'expiration des commandes dans Entity Framework pour éviter les délais d'attente d'importation de fonctions ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-09 14:47:41351parcourir

How Can I Correctly Set Command Timeouts in Entity Framework to Avoid Function Import Timeouts?

Délai d'expiration d'Entity Framework : définissez correctement CommandTimeout

Lors de l'utilisation d'Entity Framework (EF), si vous rencontrez un délai d'attente d'importation de fonction (plus de 30 secondes), il est important de comprendre les étapes pour définir correctement le délai d'expiration de la commande. Bien que l’ajout de « Default Command Timeout=300000 » à la chaîne de connexion puisse sembler simple et direct, il existe des bogues connus avec cette approche dans certaines versions d’EF.

Pour résoudre ce problème, définissez manuellement CommandTimeout directement sur l'objet contextuel dans le référentiel. Dans EF 4 et inférieur, utilisez this.context.CommandTimeout = 180;. Dans EF 5, utilisez ((IObjectContextAdapter)this.context).ObjectContext.CommandTimeout = 180;. Dans EF 6, utilisez this.context.Database.CommandTimeout = 180;. Dans EF Core 1.0, utilisez this.context.Database.SetCommandTimeout(180);.

En définissant directement CommandTimeout, vous vous assurez que la valeur du délai d'attente est appliquée à toutes les requêtes exécutées par ce contexte. Il est important de noter que la définition de valeurs de délai d'attente contradictoires dans la chaîne de connexion peut interférer avec la définition manuelle de CommandTimeout. La meilleure pratique consiste donc à supprimer la valeur de délai d'attente de la chaîne de connexion.

En suivant ces étapes, vous pouvez empêcher EF d'expirer lors du traitement de grands ensembles de données et utiliser EF efficacement même dans des situations nécessitant des opérations de récupération de données volumineuses.

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!

Déclaration:
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