Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
my_clientservTechDBMS_2012.doc.doc
Скачиваний:
17
Добавлен:
13.11.2019
Размер:
1.55 Mб
Скачать

5.1.3 Формирование модели edm

В диалоговом окне “Выбор содержимого модели” выберите “Создать из базы данных”. Затем нажмите кнопку “Далее”.

Нажмите кнопку “Создать соединение”.

В диалоговом окне “Выбор источника данных” выберите источник данных и нажмите кнопку “Продолжить”.

В диалоговом окне “Свойства соединения” введите имя сервера, выберите метод проверки подлинности, введите имя базы данных “School” и нажмите кнопку “ОК”.

В диалоговом окне “Выбор подключения к данным” появятся заданные настройки подключения к базе данных.

Проверьте, что установлен флажок “Сохранить параметры соединения сущности в App.Config как:” и задано значение “SchoolEntities”. Затем нажмите кнопку “Далее”.

Откроется диалоговое окно “Выбор объектов базы данных”.

Убедитесь в том, что выделены все таблицы и хранимые процедуры и параметр “Пространство имен модели” имеет значение “SchoolModel”, а затем нажмите кнопку “Готово”, чтобы завершить работу мастера.

Мастер выполняет следующие действия:

  • Добавляет ссылки на сборки System.Data.Entity, System.Runtime.Serialization и System.Security.

  • Создает файл School.edmx, который определяет модель EDM.

  • Создает файл с исходным кодом, в котором содержатся классы, сформированные на базе данной модели EDM. Файл с исходным кодом можно просмотреть, раскрыв EDMX-файл в “Обозревателе решений”.

  • Создает файл App.Config.

Открывание модели EDM в конструкторе моделей EDM ADO.NET

В “Обозревателе решений” дважды щелкните файл School.edmx.

Модель School откроется в окне конструктора моделей EDM ADO.NET, как показано на следующей схеме (рис. 5.2).

Рис. 5.2 Модель сущностей

В меню “Вид” выберите “Другие окна” и щелкните “Показать обозреватель моделей сущностей”.

Будет открыто окно обозревателя моделей сущностей.

Раскройте узлы “SchoolModel” и “SchoolModel.Store”, чтобы просмотреть концептуальные определения и определения хранения соответственно.

В меню “Вид” выберите “Другие окна”, щелкните “Показать сведения о сопоставлении сущности”, а затем щелкните сущность или ассоциацию в конструкторе сущностей.

Будет открыто окно «Сведения о сопоставлении сущности» с информацией об объектно-реляционном сопоставлении для выделенного объекта.

Файлы сопоставления и определения классов для модели School были успешно созданы. Далее предстоит создать запросы к объектам CLR, которые представляют сущности и ассоциации в модели School, и связать результаты этих запросов с элементами управления.

5.1.4 Запрос данных о факультетах из базы данных School

В начале файла с кодом для формы CourseViewer добавьте директиву using (C#) или Imports (Visual Basic), чтобы сослаться на модель, созданную из базы данных School, и пространство имен сущностей.

using System.Data.Objects;

using System.Data.Objects.DataClasses;

В начале определения разделяемого класса для формы CourseViewer добавьте следующий код, создающий экземпляр ObjectContext.

// Create an ObjectContext instance based on SchoolEntity.

private SchoolEntities schoolContext;

В конструкторе форм CourseViewer дважды щелкните форму CourseViewer.

Откроется страница с кодом формы, и будет создан метод обработчика события courseViewer _Load.

В методе обработчика события courseViewer _Load скопируйте и вставьте следующий код, который определяет представление DataGridView, выполняет запрос, возвращающий коллекцию факультетов (упорядоченную по параметру Name), и привязывает коллекцию объектов Department к элементу управления departmentList.

// Initialize the ObjectContext.

schoolContext = new SchoolEntities();

// Define a query that returns all Department objects and related

// Course objects, ordered by name.

ObjectQuery<Department> departmentQuery =

schoolContext.Department.Include("Course").OrderBy("it.Name");

try

{

// Bind the ComboBox control to the query, which is

// executed during data binding.

this.departmentList.DataSource = departmentQuery;

this.departmentList.DisplayMember = "Name";

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

Отображение курсов для выбранного факультета

В конструкторе форм “CourseViewer” дважды щелкните элемент управления “departmentList”.

Будет создан метод обработчика события “departmentList_SelectedIndexChanged”.

Вставьте следующий код, который загружает курсы, связанные с выбранным факультетом.

try

{

// Get the object for the selected department.

Department department =

(Department)this.departmentList.SelectedItem;

// Bind the grid view to the collection of Course objects

// that are related to the selected Department object.

courseGridView.DataSource = department.Course;

courseGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

Были успешно созданы запросы, возвращающие объекты “Department” и “Course” и связывающие эти объекты с элементами управления. После этого необходимо сохранить изменения, выполненные для объектов “Course” в сетке данных, в базе данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]