2012-03-06 4 views
2

J'ai trois projets C# ASP.NET MVC2 dans une solution unique. Les noms ont été changés pour des raisons de simplicité.ADO.Net: Partage d'entités (.edmx) entre plusieurs projets dans une solution

La solution est MY_COMPANY_SITES.

Il contient trois projets: CUSTOMER_SITE, INTRANET_SITE, CENTRAL_REPOSITORY. ... Les projets CUSTOMER_SITE et INTRANET_SITE ont leurs propres modèles d'entité ADO.Net, générés via EDMX, et se connectent à leurs propres bases de données. Le projet CENTRAL_REPOSITORY contient un troisième modèle d'entité ADO.Net, lié à sa propre base de données.

Dans ma situation, il est nécessaire que ces trois bases de données soient séparées; prendrait trop de temps à expliquer ici. Ce que je dois faire: Donner à la fois l'accès CUSTOMER_SITE et INTRANET_SITE aux entités CENTRAL_REPOSITORY ADO.Net, en plus des leurs.

-à-dire, le code devrait fonctionner:

CUSTOMER_Entities custDb = new CUSTOMER_Entities(); 
CENTRAL_Entities ctrDb = new CENTRAL_Entities(); 

StoreLocation firstLoc = ctrDB.StoreLocations.First(); 

List<Order> orders = (from n in custDb.Orders 
         where n.LocationID == firstLoc.LocationID 
         select n).ToList(); 

... Je préférerais également idéalement que si je modifie le modèle d'entité au sein du CENTRAL_REPOSITORY, il est juste liée par les autres applications donc je don Je n'ai pas à copier tous mes changements parmi les trois.

Je me dis qu'il doit y avoir un "bon" moyen de le faire. Pourrait beaucoup utiliser un peu d'aide pour comprendre comment.

Merci!

MISE À JOUR:

Blindy (ci-dessous) m'a dirigé de constater que la réponse est juste un clic droit sur les « Références » au sein de l'CUSTOMER_SITE dans l'Explorateur de solutions et cliquez sur « Ajouter une référence ... ", sélectionnez le projet CENTRAL_REPOSITORY, puis cliquez sur OK. Et voilà, tout devrait fonctionner.

Cependant, cela ne semble pas fonctionner. Plus précisément, je reçois cette erreur lorsque je tente d'accéder aux données de la CENTRAL_REPOSITORY entités à l'intérieur du CUSTOMER_SITE ou INTRANET_SITE:

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid. 

... donc il y a un problème avec essayer d'utiliser les entités de ce projet, et je Je ne comprends pas quoi. Des pensées?

+0

Quelle est la question? –

+0

Si vous avez déjà le troisième projet référencé par les deux autres, vous pouvez le faire exactement comme vous l'avez écrit. Quel est le problème ici exactement? – Blindy

Répondre

0

Pour répondre à votre question, vous devez avoir la chaîne de connexion appropriée dans votre configuration des deux autres sites, pour permettre à votre CENTRAL_REPOSITORY de l'utiliser pour vous connecter. Jetez un oeil dans la configuration du site d'origine et copiez cette connexion sur les deux autres sites.

0

Vous devez créer une chaîne de connexion dans le fichier app.config pour chaque projet utilisant le modèle linq to entities pour résoudre cette erreur.

Questions connexes