2010-04-13 2 views
3

Je commence un port d'une application ColdFusion existante vers .NET MVC et l'un des premiers problèmes que je rencontre est que dans ColdFusion, nous utilisons le fait que vous pouvez définir plusieurs sources de données et y accéder de manière dynamique. qu'un utilisateur particulier peut être pointé sur une base de données particulière.Comment indiquer dynamiquement à une application .NET MVC la source de données à pointer?

Pour donner un exemple, je pourrais avoir deux bases de données, Foo et Bar qui ont chacune une table appelée Emplacements qui stocke des emplacements particuliers à cette base de données. Les bases de données ont la garantie d'avoir les mêmes tables, donc ce n'est pas un problème. Dans ColdFusion, vous pouvez facilement diriger dynamiquement un utilisateur vers une source de données particulière, car il s'agit simplement d'une chaîne configurée via l'administrateur ColdFusion (ou vous pouvez modifier un fichier XML par programmation). Donc, la question est de savoir comment faire cela dans .NET? Et plus précisément, je pense que j'aimerais vraiment utiliser le framework Entity pour tirer parti du support ORM qu'il va offrir pour effectuer des opérations sur les données de la base de données, mais je ne suis pas sûr de savoir comment le faire (j'espère c'est possible). Des pensées?

Répondre

2

Vous pouvez facilement transmettre la chaîne de connexion à la structure de contexte de données de la structure d'entité.

var context = new MyDataContext(dynamicConnectionString); 

Ceci suppose bien entendu que vous connecter chaque source de données aura le même schéma exact ;-)

1

Lorsque vous créez votre modèle EF une entrée sera ajoutée à la web.config dans la configuration section appelée connectionStrings. Vous pouvez également modifier cela pour pointer vers différentes bases de données si vous n'avez pas besoin de modifier la base de données au moment de l'exécution, comme suggéré par Joel.

Questions connexes