3. Создание баз данных с использованием утилиты WpfCarShop

3.1. Создание баз данных при стартовом развертывании решения

3.1.1. Скачайте архив с утилитой

WpfCarShop

3.1.2. Извлеките из архива все содержимое в какую-либо папку, (к примеру, с именем WpfCarShop)
3.1.3. Найдите в содержимом файл c именем WpfCarShop.exe.config
3.1.4. Программой Блокнот откройте файл и именем WpfCarShop.exe.config (для этого правым кликом мыши на файле вызвать меню, в появившемся меню выбрать "Открыть с помощью", затем "Выбрать программу" и выбрать Блокнот)


<connectionStrings>
    <add name="CarShopContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShop;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopArticleContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopArticle;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopRestContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopRest;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopIncomeContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopIncome;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopSalesContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopSales;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopOrdersContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopOrders;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
    <add name="CarShopMsTecDocContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopMsTecDoc2013Q4;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>
</connectionStrings> 

3.1.5.Вам необходимо отредактировать настройки в этом блоке:
(3.1.5.1.)
ТУТ_ПАРОЛЬ изменить на пароль, который вы используете для входа в MSSQL-Server с помощью MSSQL Management Studio
(3.1.5.2.)
ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА изменить на настройки, которые вы вносили в поле "Имя сервера" для входа в MSSQL-Server с помощью MSSQL Management Studio

ЗАМЕЧАНИЕ: Запрещается изменять два имени
1. Запрещается изменять name="CarShopContext"
2. Запрещается изменять name="CarShopMsTecDocContext"
т.к. эти две базы данных не могут дублироваться в системе и их имена зашиты в код. Если изменить, то система не запустится.

3.1.6. Сохранить изменения, которые вы сделали через меню "Файл" и затем "Сохранить". После этого закройте блокнот
3.1.7. Найти файл c именем WpfCarShop.exe и дважды кликнуть по этому файл. Это запустит утилиту WpfCarShop.
3.1.8. Из среды WpfCarShop.exe вызовите меню "Создание баз данных" и затем "Создать БД"
3.1.9. На появившейся форме кликните по кнопке "Создать БД" для той базы данных, которую вы хотите создать. Если вы только разворачиваете решение, то кликнуть по каждой кнопке. Перед созданием очередной БД дождитесь появления блока диалога с сообщением "БД создана успешно".
Замечание: Создавать бузу данных CarShopMsTecDocContext не требуется!!! Необходимость в создании этой БД возникает лишь в том случае, если вы собираетесь создать свою копию каталога TecDoc в формате Ms Sql.
3.1.10. Запустите утили "MSSQL Management Studio", подключитесь к Sql серверу и убедитесь, что базы данных созданы. Для этого в середе "MSSQL Management Studio" разверните узел "Базы данных" и убедитесь, что приведены следующие имена:

  • CarShopContext (инфраструктура данных)
  • CarShopArticleContext (БД артикулов товаров, которыми торгует ваша сеть магазинов)
  • CarShopRestContext (БД остатков)
  • CarShopIncomeContext (БД прихода)
  • CarShopSalesContext (БД продаж)
  • CarShopOrdersContext (БД заказов)
  • CarShopMsTecDocContext (БД артикулов TecDoc)
Если при создании баз данных ошибок не было, но имена не появились в списке баз данных, то в "MSSQL Management Studio" станьте на узел "Базы данных" и воспользуйтесь пунктом меню "Вид" и затем "Обновить".

3.2. Создание нескольких копий одной и той же БД

Необходимость во второй копии одной и той же БД возникает по двум причинам.
Первая причина: отведенное место полностью исчерпано и возникла необходимость в новой БД. Это будет случаться для
  • CarShopRestContext (БД остатков)
  • CarShopIncomeContext (БД прихода)
  • CarShopSalesContext (БД продаж)
  • CarShopOrdersContext (БД заказов)
  • CarShopMsTecDocContext (БД артикулов TecDoc в формате MSSQL, если вы переходите на каталог нового квартала)
Вторая причина: вы хотите, чтобы ваш информационный ресурс обслуживал второй магазин, но так, чтобы базы данных для разных магазинов были разными. Это возможно настроить для всех БД кроме CarShopContext (инфраструктура данных). База данных CarShopContext является единственной общей БД для всех, которую нельзя задублировать.

Разберем на примере CarShopIncomeContext процесс создания второй копии. Прием состоит в редактировании фрагмента файла WpfCarShop.exe.config


    <add name="CarShopIncomeContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopIncomeContext;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>

Изменим Initial Catalog=CarShopIncomeContext; на Initial Catalog=CarShopIncomeContextZZZZ;, сохраним WpfCarShop.exe.config, выполним шаги 3.7.-3.8. Далее на появившейся форме кликнуть по кнопке "Создать БД" для базы данных CarShopIncomeContext (БД прихода). Используя MSSQL Management Studio убедимся, что создана БД с именем CarShopIncomeContextZZZZ.

Разберем на примере CarShopMsTecDocContext процесс создания второй копии. Прием состоит в редактировании фрагмента файла WpfCarShop.exe.config


    <add name="CarShopMsTecDocContext" 
              connectionString="Data Source=ИМЯ_КОМПЬЮТЕРА\ИМЯ_SQL_СЕРВЕРА;
              Initial Catalog=CarShopMsTecDoc2014Q1;Persist Security Info=True;
              User ID=sa;Password=ТУТ_ПАРОЛЬ" providerName="System.Data.SqlClient"/>

Изменим Initial Catalog=CarShopMsTecDocContext; на Initial Catalog=CarShopMsTecDoc2014Q1;, сохраним WpfCarShop.exe.config, выполним шаги 3.7.-3.8. Далее на появившейся форме кликнуть по кнопке "Создать БД" для базы данных CarShopMsTecDocContext (БД артикулов TecDoc в формате MSSQL, если вы переходите на каталог нового квартала). Используя MSSQL Management Studio убедимся, что создана БД с именем CarShopMsTecDoc2014Q1. Заметим, что имя БД CarShopMsTecDoc2014Q1 подсказывает нам, что каталог будет содержать 1-й квартал 2014 года.

3.3. Важные шаги после создания (Но можно и не выполнять)

Чтобы избежать возможных проблем с совместимостью необходимо удалить соответствующую информацию из созданных БД. Для этого:
3.3.1. Запустить MSSQL Management Studio и подсоединиться к вашему SQL-серверу
3.3.2. В пенале слева развернуть узел "Базы данных". Далее развернуть узел каждой базы данных. Далее развернуть узел "Таблицы". Далее развернуть узел "Системные таблицы" и удалить таблицу "dbo.__MigrationHistory" (чтобы удалить необходимо сделать правый клик на узле таблицы и в появившемся меню выбрать пункт "Удалить").