Entity Framework не работает в отдельном проекте от проекта веб-приложения MVC3 - PullRequest
3 голосов
/ 20 марта 2012

У меня есть Entity Framework Project и класс репозитория в отдельном проекте от моего веб-приложения MVC3.В моем проекте MVC я установил ссылку на проект данных Entity Framework, чтобы я мог создать экземпляр хранилища и вызвать его методы.Однако я получаю сообщение об ошибке:

Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо.

Я столкнулся с этимдо этого, и я полагаю, что решение состоит в том, чтобы включить строку соединения из файла app.config структуры сущностей в файл web.config MVC.

Это не очень хорошо для меня.Такое ощущение, что должен быть другой способ сделать проекты менее тесно связанными между собой.Я сплю или есть лучшая практика, которая позволила бы мне просто позвонить по ссылочному dll и покончить с этим?

Спасибо

Ответы [ 3 ]

8 голосов
/ 20 марта 2012

Файл app.config, включенный в библиотеку DLL вашего проекта Entity Framework, содержит строку подключения, которая используется конструктором EDMX для поиска целевой базы данных при запуске команды «Обновить модель из базы данных».

При развертывании приложения единственным известным файлом конфигурации является web.config. Файл app.config из вашей EF dll не используется в производстве.

Таким образом, в ваш файл web.config вы включаете строку подключения, которая используется при запуске приложения MVC. При использовании преобразований вы также можете указать разные строки подключения для разных сценариев развертывания (например, для тестирования и производства).

Так что вы не вводите какую-то связь. Вы просто используете методы конфигурации, которые предлагает вам .NET.

1 голос
/ 20 марта 2012

Есть способы жестко кодировать строку подключения в вашем хранилище и использовать ее при создании контекста, но вы наверняка не хотите их использовать. Правильный способ справиться с этим - через файл конфигурации. Вы действительно не хотите, чтобы он использовал файл конфигурации из DLL, поскольку это дало бы вам меньше контроля над тем, какую строку подключения вы используете. Это усложнило бы, а не упростило бы наличие разных строк подключения для интеграционного тестирования, подготовки и производства. В то время как возможно объединить подход (фиксированная строка соединения, которая может быть переопределена настройкой конфигурации), я использовал оба способа, чтобы использовать подход, полностью управляемый конфигурацией. Мне нравится единственное соглашение, и одноразовый шаг обновления Web.Config (и любых преобразований) с правильными настройками конфигурации кажется небольшим расходом, чтобы заплатить за простое соглашение использования конфигурации всегда.

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

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

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