В этой части мы с вами создадим базу данных SQL Server CE 3.5, включим ее в проект и сгенерируем модель данных (Entity Model).
Создание базы данных и включение в проект
Для того, чтобы создать базу данных для нашего приложения открываем Microsoft SQL Server Managment Studio. Появляется запрос на подключение/создание новой базы данных. В "Тип сервера" выбираем SQL Server Compact Edition. В "Файл базы данных" выбираем "Новая база данных". Появится следующее окно:
В верхнем поле сначала нажимаем “Обзор” и выбираем папку где создать базу данных. Потом, после выбора папки редактируем название самого файла БД (по умолчанию он будет что-то типа MyDatabase#1.sdf), мы же назовем нашу базу данных LanguageLeranerDB.sdf. Пароль задаем “111111” (шесть единиц, особо сложный нам не надо). Нажимаем кнопку ОК и соглашаемся с тем, что пароль не безопасный. Все, база данных создана. Нажимаем кнопку Соединить и теперь можем добавлять нужные нам таблицы.
Структура базы данных будет простейшей. Описывать ее здесь не буду. Вместо этого приложу файл, с уже созданной БД (не претендую на экстра-элегантность, но пока мы и не профи, мы тока учимся :) ). Для того, чтобы подключить уже созданную БД, достаточно скачать приложенный файл, и заменить тот файл, который мы создали выше, на тот что скачали. Все будет работать.
Архив базы данных Теперь нам уже нужно создать проект в VisualStudio. Я использую Visual Studio 2010 RC и .NET Framework 4.0. Соответственно нужно иметь это ввиду. В конце каждой части я буду выкладывать архив проекта в состоянии на момент окончания части.
Итак, открываем VS2010, кликаем “Создать проект”, выбираем “WPF Application”, обзываем его LanguageLearnerRC, тыкаем ОК. Ждем несколько секунд и вуаля, проект создан.
Теперь нам нужно добавить библиотеки SQLServerCE в наш проект и сделать так, чтобы при развертывании приложения не требовалось скачивать и устанавливать сам сервер SQL. Для этого создаем в нашем проекте каталог Libs (правой кнопкой на названии проекта, добавить, новый каталог), идем в директорию установки SQL Server Compact Edition 3.5 и копируем оттуда все файлы .dll в наш только что созданный каталог Libs. Далее, нам нужно добавить эти файлы в проект. Кликаем правой кнопкой мыши на каталоге Libs в нашем проекте и выбираем Add - ExistingItems. В открывшемся диалоговом окне заходим в папку Libs, по умолчанию библиотек не будет видно, выбираем в правом нижнем углу тип файлов .dll и они появляются. Выбираем все библиотеки и тыкаем ОК. В итоге наш проект будет выглядеть так:
Далее, выделяем в окне проекта все эти библиотеки, и в окне свойств (которое по умолчанию ниже окна проекта) в Copy to output directory выбираем Copy Always.
Следующим шагом нам необходимо добавить саму базу данных в проект. Опять кликаем на названии проекта правой кнопкой мыши, выбираем Add - Existing Item и выбираем нашу БД, которая, если вы не забыли, находится в корне нашего проекта. При добавлении нам предложат создать модель данных для нашей базы данных. На выбор два вариант Dataset и Entity Data Model. Выбираем второе (Entity Data Model), жмем далее и опять выбираем “Generate From Database”. Жмем Next и нам предлагают выбрать подключение к нашей БД. Тут нам нужно будет выбрать “New Connection”. Около поля DataSource кликаем Change и выбираем SQL Server Compact Edition 3.5. Далее в поле Database указываем путь до нашей базы данных в корне нашего проекта. Вводим пароль, который если вы не забыли “111111”. Ставим галочку Save my password. В итоге окошко будем иметь вид:
Кликаем ОК. Далее, выбираем радиобуттон - “Yes, include the sensitive data in the connection string” (этим мы соглашаемся, что пароль у нас будет сохранен в строке подключения) и нажимаем Next. После непродолжительного раздумья, студия предложит нам выбрать какие элементы базы данных включить в модель данных. Пока что у нас есть только таблицы со связями. Поэтому выбираем все таблицы и жмем Finish:
Система задумалась, это она генерит нужные нам классы модели данных. По окончании раздумья мы получим графическое представления этой модели данных. Вы можете как вам удобно перемещать таблицы, переименовывать названия и тд. Но кроме как переразместить таблицы, я бы более ничего не советовал делать. В итоге у меня получилось что-то вроде этого:
Далее идем в настройки проекта. Для этого опять же правой кнопкой мыши на названии проекта и кликаем Properties. Откроется окно настроек проекта, выбираем вкладку Publish:
На этой вкладке нам нужно отменить опцию установки SQL Server если он не установлен. Кликаем Prerequisites. В появившемся окне снимаем галочку с SQL Server Compact 3.5 SP2, кликаем ОК и сохраняем настройки. Больше пока что нам там ничего не нужно.
Ну вот вроде и все. Файлы библиотек и базы данных будут автоматически копироваться целевую директорию при развертывании. Мы получили сгенерированный классы для работы с моделью данных (в файле LearningModel.Designer.cs, но лучше вам там ничего не менять, потому как мы будем периодически обновлять БД и перегенерировать модель)
Как и обещал архив проекта.
Скачать