En parallèle ne fonctionne pas avec Entity Framework

J'ai une liste d'Id, et j'ai besoin d'exécuter plusieurs procédures stockées sur chaque ID.

Quand je suis à l'aide d'une boucle foreach, cela fonctionne bien, mais quand j'ai beaucoup de dossiers, cela fonctionne assez lent.

J'ai voulu convertir le code pour travailler avec EF, mais je suis une exception: "Le fournisseur sous-jacent a échoué à l'ouverture".

Je suis en utilisant ce code, à l'intérieur de la Parallèle.ForEach:

using (XmlEntities osContext = new XmlEntities())
{
    //The code
}

Mais ça en jette toujours l'exception.

Une idée de comment puis-je l'utiliser en Parallèle avec EF? ai-je besoin de créer un nouveau contexte pour chaque procédure, je suis en cours d'exécution? J'ai autour de 10 procédures, donc je pense que c'est très mauvais pour créer 10 contextes, un pour chacun.

  • Je ne suis pas un multithread gourou, mais si vous êtes à l'aide de transactions ou de lire/écrire devient verrouillé, vous ne pouvez pas obtenir de meilleures performances de le faire simplement en série.
  • Je doute marteler l'a souligné sql server avec plus de fils ne va pas aider à la performance...
  • Le sql est pas stressé du tout, c'est pourquoi je veux utiliser un parallèle. et il va sûrement courir plus vite.
  • Sur la première boucle s'écraser ses
  • Pourquoi voudriez-vous d'utiliser .ToParallel() sur EF? Il n'améliorera pas les performances.
  • Bonne chance que vous auriez tort. Pour mon application, je trouve que près de 6 tâches parallèles est idéal. Même qui est limitée par un conflit de verrouillage que l'équipe EF est à la recherche à

InformationsquelleAutor m0fo | 2012-10-10