Главная страница
Навигация по странице:

  • Add a Table or View (Добавление таблицы или

  • Operator

  • Новые Лпр-ки. Веб ЛПР новые (1). Лабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5


    Скачать 1.04 Mb.
    НазваниеЛабораторная работа Разработка базовой основы Web приложения 5 Упражнение Создание Web приложения 5
    АнкорНовые Лпр-ки
    Дата19.03.2022
    Размер1.04 Mb.
    Формат файлаdocx
    Имя файлаВеб ЛПР новые (1).docx
    ТипЛабораторная работа
    #403967
    страница23 из 27
    1   ...   19   20   21   22   23   24   25   26   27

    Table Mapping (Таблица сопоставления).


    1. В окне Mapping Details (Сведения о сопоставлении) (см. рисунок 6.1.7) кликните Add a Table or View (Добавление таблицы или представления) и выберите Person.



    Рисунок6.1.7Добавлениетаблицы

    1. Кликните Add a Condition и выберите HireDate (см. рисунок 6.1.8).



    Рисунок6.1.8Добавлениесостояния

    1. Измените столбец Operator на Is и в столбце Value/Property

    установите Not Null как показано на рисунке 6.1.8:



    Рисунок6.1.9Настройкасвойства

    1. Повторите процедуру для сущности Students, указав, что эта сущность отображает в таблице Person, когда EnrollmentDate не нуль.

    2. Сохраните и закройте модель данных.

    3. Постройте проект, чтобы создать новые объекты и сделать их доступными в конструкторе.

    Упражнение 2. Применение сущностей Instructor и Student


    Когда вы создали веб-страницы, которые работают с данными о студентах и инструкторах, вы привязали данные сущности Person и отфильтровали свойство HireDate или EnrollmentDate для ограничения возвращаемых данных для студентов или преподавателей.

    Тем не менее, теперь, когда связали каждый элемент источника данных с сущностью Person, вы можете указать, что только типы объектов Student или Instructor должны быть выбраны. Поскольку Entity Framework знает, как отличить студентов и преподавателей в наборе Person, вы можете удалить настройки свойства Where.

    Вы можете это сделать в мастере Visual Studio Designer, указать тип

    объекта в элементе EntityDataSource, как показано, например, на рисунке 6.2.1:



    Рисунок6.2.1Настройкасущности

    В окне свойств Properties вы можете удалить значение Where, как показано, например на рисунке 6.2.2:



    Рисунок6.2.2Удалениезначенияфильтрации

    Далее необходимые изменения вы выполните в коле разметки.

    1. Откройте страницу Students.aspxв режиме разметки.

    2. В элементе StudentsEntityDataSource удалите атрибут Where и добавьте атрибут EntityTypeFilter="Student". Код разметки должен быть следующим:

    runat="server"

    ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities"

    EnableDelete="True" EnableFlattening="False" EnableUpdate="True"

    EntitySetName="People" Include="StudentGrades" OrderBy="it.LastName" EntityTypeFilter="Student">



    Установка атрибута EntityTypeFilter гарантирует, что EntityDataSource будет выбирать только указанный тип. Если вы хотите, чтобы получить оба типа Student и Instructor, вы должны не устанавливать этот атрибут.

    1. Для элемента SearchEntityDataSource добавьте атрибут EntityTypeFilter="Student" и измените атрибут Where выбирает студентов. Код разметки должен быть следующим:

    runat="server"

    ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities" EnableFlattening="False"

    EntitySetName="People" EntityTypeFilter ="Student"

    Where=" it.FirstMidName Like '%' + @StudentName + '%' or it.LastName Like '%' + @StudentName + '%'" >



    Name="StudentName" PropertyName="Text"

    Type="String" DefaultValue="%"/>





    1. Запустите страницу, чтобы проверить, что все работает как раньше.

    2. Обновите следующие страницы, которые вы создали в предыдущих упражнениях, так чтобы они использовали новые сущности Student и Instructor вместо сущности Person, а затем запустите их, чтобы убедиться, что они работают как раньше:

      • на странице StudentsAdd.aspx в элемент

    StudentsEntityDataSource добавьте EntityTypeFilter="Student":

    ConnectionString="name=SchoolEntities"

    DefaultContainerName="SchoolEntities" EnableDelete="True" EnableFlattening="False"

    EnableUpdate="True"

    EnableInsert="True" EntityTypeFilter="Student" EntitySetName="People" Include="StudentGrades">





      • на странице About.aspx в элемент

    StudentStatisticsEntityDataSource добавьте

    EntityTypeFilter="Student" и удалите Where="it.EnrollmentDate is not null". Код разметки должен быть таким:

    runat="server"

    ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities"

    EnableFlattening="False" EntitySetName="People" EntityTypeFilter="Student"

    GroupBy="it.EnrollmentDate" OrderBy="it.EnrollmentDate"

    Select="it.EnrollmentDate, Count(it.EnrollmentDate) AS NumberOfStudents">



      • на страницах Instructors.aspxи InstructorsCourses.aspxв элемент InstructorsEntityDataSource добавьте EntityTypeFilter="Instructor" и удалите Where="it.HireDate is not null".

    Код страницы Instructors.aspx:

    runat="server"

    ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities" EnableFlattening="False"

    EntitySetName="People" EntityTypeFilter="Instructor" Include="OfficeAssignment">



    Код разметки InstructorsCourses.aspx:

    runat="server"

    ConnectionString="name=SchoolEntities" DefaultContainerName="SchoolEntities"

    EnableFlattening="False" EntitySetName="People" EntityTypeFilter="Instructor"

    Select="it.LastName + ', ' + it.FirstMidName AS Name, it.PersonID">



    В результате этих изменений, вы улучшили стиль приложения Contoso в несколькими способами.

    Вы перенесли выборку данных и логику проверки из слоя интерфейса (.aspx разметки) и сделали его неотъемлемой частью слоя доступа к данным. Это помогает изолировать код приложения от изменений, которые вы могли бы сделать в будущем в схеме базы данных или модели данных. Например, вы могли бы решить, что студенты могут быть наняты в качестве помощников преподавателей и, следовательно, получить дату найма. Затем можно добавить новое свойство, определяющее студентов-инструкторов, и

    обновить модель данных. Код веб-приложения не нужно будет изменять исключением случаев, когда вы хотите, чтобы показать дату для студентов. Еще одно преимущество добавления классов инструкторов и студентов состоит в том, что код становится более понятным, чем когда использовались только объекты Person, которые на самом деле студенты или преподаватели.

    1   ...   19   20   21   22   23   24   25   26   27


    написать администратору сайта