2011-11-10 5 views
3

Ne demandez pas pourquoi, mais il existe quatre bases de données. Un dont j'ai le droit de modifier le schéma. Appelons-le external. Encore une fois, il s'agit d'une entente héritée, mais il y a environ 60 tables dans l'une des trois autres bases de données, appelées main. Chaque enregistrement de ces tables comporte un champ qui le lie à un enregistrement dans une table correspondante au external.PetaPoco sur plusieurs bases de données

PetaPoco va faire un travail rapide de la plupart des problèmes. Provisoirement, j'ai essayé plusieurs fichiers Database.tt pour manipuler les quatre bases de données. Y a-t-il un meilleur moyen?

  1. Dois-je créer des synonymes ou des vues dans externes qui se réfèrent aux marchandises dans les autres bases de données? Et puis seulement utiliser un Database.tt sur externe?
  2. Un POCO combiné pour les tables liées est-il raisonnable? Le Database.tt est seulement utilisé pour pré-générer un peu de poco hors de votre schéma.
+0

Les synonymes ne fournissent pas de détails sur les colonnes. Ainsi, les multiples fichiers tt sont le seul moyen de générer des POCO. Les vues multi-tables ne sont insérées que de manière atomique sur l'une des tables de base. Cependant, je vais toujours créer des synonymes pour permettre des requêtes inter-bases de données à l'exécution. –

Répondre

1

Je peux à peine croire que vous allez le laisser là sans modification. Normalement j'y commencerais et changerais pour rendre plus raisonnable lié (avec des propriétés de complexe de propriétés pour les tables liées)

Comme pour les requêtes de tables liées, comme elles doivent être exécutées dans 1 requête, vous devez seulement garder la connexion à seulement 1 db, donc une table liée est nécessaire. Mais soyez prudent. Les jointures de tables de bases de données croisées peuvent parfois être 10 fois plus lentes que les jointures locales, en fonction de sqls. Si vous avez imbriqué sélectionnez plusieurs tables DB, mieux vaut créer une table temporaire pour éviter les problèmes de performances.

Questions connexes