1

Nous construisons une application multi-tenant ASP.Net MVC 2 sur SQL Server en utilisant le modèle "base de données unique, schéma séparé" discuté, entre autres, here et here, où chaque locataire a un ou plusieurs utilisateurs et est divisé avec son propre schéma SQL Server propre au locataire. L'application utilise Entity Framework 4. Pour que les utilisateurs de différents locataires puissent accéder aux données de leur schéma, nous devons être en mesure de spécifier un schéma lors de la création ObjectContext d'une entité.Quelle est la meilleure implémentation pour modifier le schéma de la base de données lors de l'exécution à l'aide d'Entity Framework 4?

J'ai vu quelques références à cet outil (http://efmodeladapter.codeplex.com/) mais (1) je ne voudrais pas avoir à mettre à jour le code chaque fois que l'EDMX est généré comme spécifié dans les instructions d'utilisation et (2) il a été produit avant EF4 donc j'espère qu'il y a un moyen plus facile maintenant.

Alors, quelle est la meilleure façon de le faire dans EF4?

Merci

+1

Personne n'a d'idées? C'est un peu décevant que cette fonctionnalité ne semble pas du tout cuite. Il semble qu'une façon de le faire est décrite sur http://blogs.microsoft.co.il/blogs/idof/archive/2008/08/22/change-entity-framework-storage-db-schema-in-runtime .aspx. – erg39

Répondre

1

Eh bien, d'accord alors. Pour les futurs chercheurs, ce que j'ai implémenté est quelque chose comme this example, bien que je charge les fichiers ssdl, csdl et msl à partir des ressources intégrées comme this example. En implémentation, lorsque je crée un objet de référentiel dans une requête d'action MVC, j'utilise un contexte utilisateur pour déterminer quel schéma est nécessaire, utiliser l'exemple noté précédemment pour écrire le schéma et créer un EntityConnection puis l'utiliser créer mon entité ObjectContext.

Cela semble fonctionner plutôt bien, même si je suis un peu inquiet car il semble intuitivement que cela pourrait être un problème de performance.