Délai d’attente Linq-to-SQL

J’ai reçu une erreur sur une de mes pages qui a dépassé le délai d’attente de la requête linq. Cela rend la page inutilisable.

C’est une page de rapports accessible uniquement aux administrateurs une fois par jour. Il est inévitable de réduire cette requête, il suffit de sortinger beaucoup de données.

Les solutions pour résoudre ce problème, j’ai lu sont en augmentant la propriété de délai d’attente dans le contexte de données, mais je voudrais éviter de le faire car cela changerait pour l’ensemble du site.

Existe-t-il un moyen de définir un délai plus long pour les pages individuelles?

Juste trouvé la réponse en jouant avec intellisense:

using (MainContext db = new MainContext()) { db.CommandTimeout = 3 * 60; // 3 Mins } 

C’est ainsi que vous pouvez augmenter le délai d’attente d’une requête pour chaque requête, comme supposé modifier les chaînes de connexion ou les contextes de données.

La réponse de @Tom Gullens n’a pas fonctionné pour moi sur EF6

J’ai dû explorer la firebase database sur DbContext

Ecom.Database.CommandTimeout = 120;

J’espère que cela vous fera gagner du temps.

La réponse de Tom Gullen est bonne.

Un autre répondant a mentionné la définition du délai de connexion dans la chaîne de connexion.
Je voulais avertir que la propriété de délai de connexion de la chaîne de connexion n’est pas le délai d’attente de la commande. C’est plus évident quand on y pense. C’est une erreur courante.

Avant d’augmenter le délai d’expiration SQL, il est toujours utile d’évaluer votre stratégie d’indexation. D’après mon expérience, il est rare qu’une requête sur une table et des colonnes bien indexées expire.

Des Owen