2010-12-07 55 views
1

J'ai utilisé un DataContext de base pour créer des objets, puis les soumettre dans une base de données.Quelle méthode DataContext sera la plus rapide?

J'ai écrit moi-même quelques tests pour voir ce qui est rapide mais je me demandais simplement quelle méthode est considérée comme la meilleure pratique parmi les suivantes. Le code effectue une itération à travers une boucle et instancie un objet qui doit être conservé dans la base de données. Est-il préférable de:

1.) Créer une liste d'objets puis et attribuer à chaque objet créé à la liste puis à l'utilisation finale

MyDataContext.InsertAllOnSubmit(ListOfObjects) 

2.) Attribuer chaque objet créé directement dans le DataContext à l'aide

MyDataContext.InsertOnSubmit(Object) 

Espérons que cela a du sens, si quelqu'un a besoin de plus d'informations faites le moi savoir!

Merci

Répondre

1

Je suppose que nous parlons de l'impact sur les performances de l'événement submit - aucune connexion à la base de données n'est ouverte immédiatement lorsque ces méthodes sont appelées.

Étant donné que chaque implémentation ne met à jour que la base de données de Submit, elles sont toutes deux très similaires. Toute différence de performance sera marginale (et sera contrecarrée par le traitement que vous ferez pour placer les objets dans la liste ou énumérer la liste), alors choisissez celle qui correspond le mieux à votre conception.

Vous trouverez peut-être cette page sur l'optimisation prématurée intéressante - http://c2.com/cgi/wiki?PrematureOptimization

L'optimisation prématurée est la racine de tous les maux - Donald Knuth.

1

Je suppose que pour la deuxième option, vous aurez besoin de rouvrir la connexion pour chaque opération. L'utilisation d'une liste est plus propre et une meilleure option.

+2

Aucune de ces méthodes ne touchera la base de données. Ils ajoutent seulement la méthode à la liste qui sera soumise lorsque la méthode Submit est appelée, donc ils seront assez similaires en performance. –

+0

Je pense toujours que la première option est meilleure. Pas à cause de la performance mais à cause de la traçabilité. – Pabuc