Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Снова запутался - строка подключения.

25.06.19 13:09
Re: Снова запутался - строка подключения.
 
Murr патриот
Murr

Делаешь проперти ConnectionString виртуальной и в тестах, где тебе надо заменить БД на тестовую, просто меняешь возвращаемое значение.

-----

Ну это Я делаю и без виртуальности.

Ааа... кажется понял что ты имеешь в виду - сделать несколько имплементаций калассов с FillDataTable & virtual ConnectionString и подставлять нужный в каждый отдельный момент.

Увы, но - не решение - просто проблема выбора нужной коннектион стринг заменена проблемой выбора нужного класса.

Сама проблема - осталась.


Поясню:

app.config

<connectionStrings>

<add name="dbConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=Nenagh)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED).../>

</connectionStrings>


в части тестов строка подключеня заменяется на

<connectionStrings>

<!-- DO NOT IN ANY CIRCUMSTANCES POINT Tests TO LIVE DATABASE - TESTS ARE DESTRUCTIVE -->

<add name="dbConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=SandBox)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED) .../>
</connectionStrings>

Строка лежит в другом конфиге и читается отдельно.

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


На вебе немного по-другому.


web.config 1:

<connectionStrings>

<remove name="dbConnection" />
<add name="dbConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=Nenagh)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED) .../>

</connectionStrings>

web.config 2:

<connectionStrings>
<remove name="dbConnection" />
<add name="dbConnection" connectionString="Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=Lurgan)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED) .../>
</connectionStrings>

Здесь - строка заменяется - делается автоматически веб-сервером, но нет (не знаю, не нашел) нотификации. Если Я буду читать конфиг - получу нужное значение.

А читать Я не могу т.к. значение уже - требование подмены в тестах - кешировано - могу только переписать.

А проверять, как в тестах, где именно Я нахожусь - возможности нет - страница одна и та же, просто копия лежит в папке с другим конфигом и менять это не желательно. Да и дотятуться туда не просто - дизайнил чтобы было нельзя.

Т.е. Я не знаю нужно мне пользовать кеш или нужно читать конфиг. И возможности установить это вроде нет.

Хотя... принудительно перечитать конфиг и переписать коннектион в бизнес-объекте веб-страницы? Ну может быть... жал' что работа дублируется...

 

Перейти на