Использование стратегии базы данных test / dev / prod с Entity Framework - PullRequest
0 голосов
/ 31 декабря 2010

При работе в Ruby (в частности, в Rails) я могу автоматически запускать свои тесты с использованием тестовой базы данных, а также легко выбирать между базой данных разработки или производственной базой данных.По-прежнему новичок в Entity Framework (WPF), но он кажется не таким простым.

У моей сборки Entity есть файл App.Config, который содержит ссылку на базу данных, и мне нужно скопировать этот файл App.Config во все выполняемые проекты (например, вопросы 1113361 и 2233897 ).

Если я использую Test-> Database Test Configuration без явного копирования App.Config из моего проекта EF, я получаю

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

, что совпадает с тем, что у меня отсутствует или другой файл App.Config.

Как ни странно, даже если я делаю меняю все строки подключения в моем проекте Entity и проекте тестирования на одну и ту же базу данных, я все равно получаю эту ошибку.

Есть ли шагМне не хватает, когда я говорю Visual Studio (2010 Ultimate), что я хочу, чтобы мои тесты выполнялись с использованием другой базы данных тестирования, или это просто не поддерживается с EF 4?

Кроме того, есть лиКак изменить контекст базы данных, кроме копирования файлов App.Config туда и обратно?Похоже, серьезный способ игнорировать разделение интересов, если нет, поэтому я думаю, что что-то упустил.

1 Ответ

1 голос
/ 31 декабря 2010

Странно, так как я играл после этого, это начало работать. Кто-то может прокомментировать это, но похоже, что я использовал Test-> Database Test Configuration в неправильное время.

Для остроумия:

Чистый проект, без App.Config, используйте Test-> Database Test Configuration, чтобы установить тестовую базу данных. Он генерирует app.config (особенно в нижнем регистре). Вы получаете ошибку. Даже если вы проверите все строки подключения (странно)

Чистый проект, сначала скопируйте App.Config из вашего проекта Entity . Теперь, когда вы используете Test-> Database Test Configuration, он заполнит скопированный вами App.Config, и он заработает.

Я предполагаю, что это была какая-то проблема, которую я создавал при копировании строк соединения.

Я также подтвердил, что это работает с моим проектом Entity, использующим базу данных «Main», в то время как мой проект тестирования использует базу данных «Test».

Хотите знать, если кто-то может подтвердить / уточнить это?

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