2010-07-13 4 views
2

Nous implémentons un système utilisant EF4 et WPF. Nous notons un problème avec la sauvegarde initiale des données: lorsque le SaveChanges initial est exécuté, il y a un délai de 4 à 6 secondes lorsque la commande context.SaveChanges() est exécutée. Chaque SaveChanges suivant est très rapide, sans délai notable. Ce n'est pas un problème majeur - mais un ennui tout de même.Entity Framework - L'enregistrement initial est lent

Quelqu'un a-t-il rencontré ce problème et a-t-il trouvé un moyen de le contourner?

Merci

+0

Je l'ai expérimenté avec EF3, mais je ne connais pas le moyen de le contourner. Je suis d'accord que c'est vraiment énervant. – echo

+1

Mettez un profileur SQL et trace? Voyez ce qui se passe lorsque vous sauvegardez – ram

+0

D'accord avec @le rebooter. Profilez votre application avec SQL Profiler et un profileur de code. Déterminez ce qui vous ralentit. –

Répondre

3

Problème résolu: la réponse a été pré-générer des vues du modèle. La raison de ceci et la méthode pour implémenter la solution est trouvée ici: http://msdn.microsoft.com/en-us/library/bb896240.aspx. En bref - à chaque fois qu'un nouveau contexte est créé Entity Framework génère un ensemble de vues utilisées pour accéder à la base de données. Cette génération de vue est une opération coûteuse et explique le retard initial important rencontré. En précompilant ces vues, ce délai initial est évité.