ADO.Net: совместное использование сущностей (.edmx) между несколькими проектами в рамках одного решения - PullRequest
2 голосов
/ 06 марта 2012

У меня есть три C # ASP.NET MVC2 проекта в одном решении. Имена изменены для простоты.

Решение - MY_COMPANY_SITES.

В нем три проекта: CUSTOMER_SITE, INTRANET_SITE, CENTRAL_REPOSITORY.

... Оба проекта CUSTOMER_SITE и INTRANET_SITE имеют свои собственные модели объектов ADO.Net, созданные с помощью EDMX, и подключаются к своим собственным базам данных. Проект CENTRAL_REPOSITORY содержит третью модель объекта ADO.Net, связанную с его собственной базой данных.

В моей ситуации требуется, чтобы эти три базы данных были отдельными; потребовалось бы слишком много времени, чтобы объяснить здесь.

Что мне нужно сделать: предоставить как CUSTOMER_SITE, так и INTRANET_SITE доступ к объектам CENTRAL_REPOSITORY ADO.Net, в дополнение к их собственным.

Т.е. должен работать следующий код:

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();

... В идеале я бы предпочел, чтобы, если я изменяю модель сущности в CENTRAL_REPOSITORY, она просто связана с другими приложениями, поэтому мне не нужно копировать все свои изменения среди всех трех.

Я полагаю, что должен быть "правильный" способ сделать это. Мог бы очень помочь понять, как.

Спасибо!

UPDATE:

Блинди (ниже) дал мне указание найти ответ, просто щелкнув правой кнопкой мыши «Ссылки» в CUSTOMER_SITE в обозревателе решений и выбрав «Добавить ссылку ...», затем выберите проект CENTRAL_REPOSITORY и нажмите ОК И вуаля, все должно работать.

Однако на самом деле это не похоже на работу. В частности, я получаю эту ошибку, когда пытаюсь получить доступ к объектам данных CENTRAL_REPOSITORY из CUSTOMER_SITE или 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.

... так что есть некоторая проблема с попыткой использовать сущности из этого проекта, и я не понимаю что. Есть мысли?

Ответы [ 2 ]

0 голосов
/ 25 марта 2012

Вам необходимо создать строку подключения в файле app.config для каждого проекта, который использует модель linq to entity для решения этой ошибки.

0 голосов
/ 07 марта 2012

Чтобы ответить на ваш вопрос, вам нужно иметь соответствующую строку подключения в конфигурации двух других сайтов, чтобы ваш CENTRAL_REPOSITORY мог использовать ее для подключения.Посмотрите исходную конфигурацию сайта и скопируйте это соединение на два других сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...