Question

J'évaluation SubSonic 3.0 pour une utilisation dans notre entreprise en remplacement de nos objets POCO. Je suis nouveau à subsonique, l'installation littéralement hier. Je suis arrivé au point où je peux me connecter à une base de données en utilisant le 3.0 LINQ T4 Modèles, et ont été courtisés par la promesse de pouvoir se connecter à plusieurs bases de données dans une application utilisant subsonique.

Mon problème est que je ne peux pas trouver de la documentation sur la façon d'utiliser les modèles T4 avec plusieurs bases de données (par exemple l'ajout d'une autre chaîne de connexion, la mise en place du Settings.ttinclude etc).

Je l'ai cherché Google et Stackoverflow une réponse à voir comment cela se fait ou si son même possible. Toute aide serait appréciée.


Il me semblait être en mesure de le faire fonctionner en ajoutant un autre connectionString au web.config, puis en ajoutant une 2ème série de modèles pour cette connectionString, cela fonctionne, mais il ne semble pas « propre » ou même vraiment que DRY pour moi.

Il semble aussi que je pouvais faire à peu près la même chose avec le .NET Construit en LINQ en ajoutant plusieurs fichiers .dbml.

Quelqu'un peut-il me donner un raisonnement à ce point pourquoi nous ne devrions pas utiliser le support intégré LINQ sur une ORM 3ème partie comme SubSonic?

Était-ce utile?

La solution

affichage Croix de la liste de diffusion subsonique:

Oh oui, je le fais tout le temps, l'astuce est de deux copies des modèles (facile) ou de modifier les modèles à itérer sur deux ensembles de tables (plus difficile). Dans la deuxième settings.tt changer le nom de la chaîne de connexion pour refléter l'autre base de données. Vous pouvez également changer l'espace de noms afin que vous n'avez pas de conflits où les noms de table sont les mêmes. Il semble hacky mais je ne pense pas que ce soit parce qu'il vous permet de faire des modifications aux modèles pour chaque base de données indépendamment.

Si vous voulez vraiment qu'un seul ensemble de modèles la meilleure façon de s'y prendre est de modifier SQLServer.tt (ou votre choix de base de données) et passer outre la façon dont LoadTables fonctionne de telle sorte qu'il accepte une liste de connexions plutôt qu'un seul un. Je dois dire que cela est une douleur et il va être beaucoup plus difficile que d'avoir 2 copies des fichiers.

Autres conseils

(En réponse à votre réponse à votre question)

  

Quelqu'un peut-il me donner un raisonnement à ce point pourquoi je ne devrais pas simplement utiliser le haut dans LINQ sur une ORM 3ème partie comme SubSonic?

Sur la pensée immédiate: SubSonic soutient plus que Microsoft Sql Server

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top