2010-11-05 26 views
0

Nous avons un problème de performances lors de l'utilisation de CTP 4 et de code uniquement (fichier de modèle .edmx non).Comment pré-générer des vues avec du code CTP4 uniquement?

Est-il possible de pré-générer des "vues" en utilisant du code seulement et CTP 4?

Réponses très appréciées.

Cordialement Lars Hiim

+1

CTP 4 de quoi? Entity Framework, je suppose. – spender

+0

Oui CTP 4 Entity Framework. –

Répondre

0

Vous can't. Cependant, votre question est trop vague pour être sûr que c'est réellement le problème.

+0

Pensez que votre lien a répondu à ma question. Nous utilisons Entity Framework CTP 4. Nous générons un nouveau Context pour chaque requête, donc PAS un Context statique (à cause de cela nos requêtes sont transférées à travers plusieurs processus utilisant WCF). ContextBuilder (contenant nos configurations) et la connexion sont statiques. Nous constatons qu'une requête retournant environ 70 objets, avec quelques objets connexes (supposons que la requête récupère des données d'environ 7-8 tables), utilise environ 2 secondes. Nous lisons que la génération de "vues" est ce qui consomme environ 60% du temps utilisé pour aller chercher nos 70 objets. Suggestions pour augmenter la performance? –

+0

Je ne voudrais pas simplement accepter que la génération de vue est le problème sans preuve. Avez-vous profilé? Vous pouvez (1) profiler le SQL et (2) essayer est un 'CompiledQuery'. Si cela accélère la deuxième et toutes les requêtes ultérieures, vous avez trouvé le problème. –

+0

Nous voyons que si nous courons la même requête deux fois (ou plus) dans la même instance de contexte; le premier prend environ 1,9 secondes, le second et plus tard prend environ 0,8 secondes. Est-ce que cela indique que c'est la génération de vue qui prend du temps? Une autre chose: nous voyons à partir de profileur SQL que la requête SQL réelle ne prend que 0,1 seconde. Donc, pour les requêtes suivantes, 0,1 seconde est utilisée par la base de données, et 0,7 seconde est consommée par notre code C#. Nous pensons que cela est plutôt étrange car l'exécution de requêtes DB est généralement la partie qui prend du temps. –