Как использовать модель из ссылочной dll в проекте mvc3 - PullRequest
0 голосов
/ 23 мая 2011

У меня есть библиотека классов, которая имеет свою собственную модель и строку подключения к базе данных.Автономно, все отлично работает, и нет проблем с извлечением данных из базы данных.Идея этой библиотеки состоит в том, чтобы создать dll и ссылку на нее в другом приложении.

В моем случае у меня есть веб-приложение MVC3 с собственной моделью и строкой соединения.Я сослался на библиотеку классов, добавил вторую строку подключения и всю сборку приложения.Но когда я запускаю приложение и фактически вызываю метод в указанной библиотеке, я получаю исключение EntitySqlException, в котором говорится, что «MyTable» не может быть разрешен в текущей области или контексте. Убедитесь, что все переменные, на которые ссылаются, находятся в области, что требует схемзагружены, и что на пространства имен ссылаются правильно. Почти экранированный идентификатор, строка 1, столбец 1. "

Я убедился, что файлы модели указанной библиотеки также скопированы в каталог bin проекта mvc иМой web.config выглядит следующим образом:

<configSections>
<section name="DefaultArchitecture" type="DefaultArchitectureConfiguration"/>
</configSections> 

<DefaultArchitecture defaultContainerName="defaultContainer" connectionStringName="defaultContainer"/>

<connectionStrings>
<add name="defaultContainer" connectionString="metadata=res://*/MvcModel.csdl|res://*/MvcModel.ssdl|res://*/MvcModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=cloudaddress;Initial Catalog=main catalog;User ID=user;Password=pass;Encrypt=true;Trusted_Connection=false;trustServerCertificate=true&quot;" providerName="System.Data.EntityClient" />
<add name="secondContainer" 
     connectionString="metadata=~\bin\libmodel.csdl|
                                ~\bin\libmodel.ssdl|
                                ~\bin\libmodel.msl;
                       provider=System.Data.SqlClient;
                       provider connection string=&quot;
                       data source=cloudaddress;
                       initial catalog=othercatalog;
                       persist security info=True;
                       user id=user;
                       password=pass;
                       multipleactiveresultsets=True;
                       App=EntityFramework&quot;" 
      providerName="System.Data.EntityClient" />

Если я изменяю имя defaultcontainer на secondcontainer ... он отлично работает для указанной библиотеки, но, конечно, больше не для defaultcontainer.

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

Надеюсь, мой вопрос ясен.Если нет, пожалуйста, дайте мне знать, чтобы я мог предоставить больше информации.

1 Ответ

0 голосов
/ 23 мая 2011

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

...