J'utilise les trucs de jeu de données .xsd (que je déteste) pour générer automatiquement des classes TableAdapter pour du code backend. Je ne les avais pas vraiment utilisées auparavant, ayant tendance à privilégier les commandes manuelles et les process stockés autant que possible (pour différentes raisons liées à la vitesse: ces xsds jouent avec des tables dynamiques et de très grandes quantités de colonnes) Le grand nombre de mes méthodes, donc ma question est la suivante:Lors de l'utilisation de TableAdapters générés automatiquement, quelle est la méthode suggérée pour gérer l'instanciation répétée?
Est-ce que le code généré automatiquement se rationaliser lui-même afin qu'une classe d'adaptateur complète ne soit pas créée sur une instance, et partage plutôt certaines données statiques (telles que les informations de connexion), et sinon serait-il mieux pour moi d'avoir une sorte de fournisseur de classe singleton/statique qui peut me donner accès à leurs méthodes si nécessaire sans la surcharge de créer un nouvel adaptateur chaque fois que je veux obtenir des informations?
Cheers, Ed
Y at-il vraiment beaucoup de frais généraux pour l'instanciation d'un TA? La seule chose que je vois dans son constructeur est 'this.ClearBeforeFill = true;' et ses propriétés CommandCollection et Connection ne sont définies qu'une seule fois pendant la durée de vie de l'AT ..... ce qui signifie que les frais généraux de configuration ne se produisent que lorsque vous faites votre premier appel à l'une de ses méthodes publiques ..... la méthode Fill, par exemple. Donc, tant que cela reste dans la portée, je ne m'attendrais pas à des problèmes de performance. Suis-je loin de la base ici? – Ken
C'est assez proche de la réponse que je suis après pour être honnête, je cherche à savoir si, comme vous le dites, il n'y a pas de coup de performance pour en créer un nouveau chaque fois que je veux exécuter une commande (pas tout à fait littéralement, mais très proche: le code qui les utilise est plutôt spagetti en raison des complexités du système), ou si je devrais créer un modèle de fournisseur mis en cache pour les servir quand j'en ai besoin. –
Peut-être utiliser DotTrace pour vérifier ma réclamation. (BTW ... j'utilise VS2005) Une chose que je fais généralement, car il y a une chaîne de connexion au moment de la conception, est de faire un constructeur de surcharge dans une classe partielle pour l'adaptateur de table qui accepte et définit la chaîne de connexion de production, pas la chaîne de temps de conception. Ceci, cependant, a un certain coût, car il établit la connexion à l'instanciation. – Ken