Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание нового веб-приложения asp. Net
В новом решении или в том же решении, что и проект базы данных, создайте новый проект в Visual Studio и выберите шаблон веб-приложения ASP.NET. Назовите проект ContosoSite. Нажмите «ОК». В окне «Новый проект ASP.NET» выберите шаблон MVC. Очистить флажок Узел в облаке. Нажмите «ОК», чтобы создать приложение. Проект создается с файлами и папками по умолчанию. Создание базы данных В обозревателе решений правой кнопкой мыши нажать на папку App_Data и создать новый элемент Создать базу данных со своим именем В обозревателе серверов в своей базе данных создать таблицы Добавьте столбцы в таблицы и определите тип хранимых данных. Определите первичные и вторичные ключи. В появившейся надписи подправить названия полей и таблиц CONSTRAINT [FK_Enrollment_ToTable] FOREIGN KEY ([CourseID]) REFERENCES [Course]([CourseID]) Для полей первичных ключей определите автоинкремент После того как все таблицы были созданы и все связи были определены переходим к созданию модели данных в приложении.
Создание моделей Теперь вы создадите модели Entity Framework из таблиц базы данных. Эти модели являются классами, которые вы будете использовать для работы с данными. Каждая модель отражает таблицу в базе данных и содержит свойства, соответствующие столбцам в таблице. Щелкните правой кнопкой мыши папку «Модели» и выберите «Добавить» и «Создать элемент». В окне «Добавить новый элемент» выберите «Данные» в левой панели и «Модель ADO.NET EDM» из параметров в центральной панели. Назовите новый файл модели ContosoModel. Нажмите «Добавить». В Мастере моделей данных сущностей выберите конструктор EF из базы данных. Нажмите «Далее». Если у вас есть подключения к базе данных, определенные в вашей среде разработки, вы можете увидеть одно из этих подключений, предварительно выбранных. Однако вы хотите создать новое соединение с базой данных, созданной ранее. Нажмите кнопку «Новое соединение». Вы можете использовать имя по умолчанию для подключения в файле Web.Config Нажмите «Далее». Выберите «Таблицы» для создания моделей для всех трех таблиц. Нажмите «Готово». Если вы получили предупреждение о безопасности, выберите «ОК», чтобы продолжить запуск шаблона. Модели создаются из таблиц базы данных, и отображается диаграмма, показывающая свойства и отношения между таблицами.
Папка «Модели» теперь включает в себя множество новых файлов, связанных с моделями, которые были созданы из базы данных. ContosoModel.Context.cs файл содержит класс, производный от DbContext класса, а также предоставляет свойство для каждого класса модели, которая соответствует таблице базы данных. В Course.cs, Enrollment.cs и Student.cs файлы содержат классы модели, которые представляют таблицы баз данных. При работе с подклассами вы будете использовать как класс контекста, так и классы модели. Сейчас необходимо сгенерировать код, который будет обеспечивать стандартные операции с данными для классов модели. Вы добавляете код, добавляя элемент Scaffold. Scaffold будет включать контроллер и представления, соответствующие моделям учащихся и регистрации, которые вы создали в предыдущем разделе. (Необходимо собрать проект, прежде чем добавлять контроллеры!) Чтобы поддерживать согласованность в вашем проекте, надо добавить новый контроллер в существующую папку Controllers. Щелкните правой кнопкой мыши Контроллеры папку и выберите Добавить – Новый Шаблонный элемент. Выберите MVC 5 Controller с представлениями, используя параметр Entity Framework. Эта опция генерирует контроллер и представления для обновления, удаления, создания и отображения данных в вашей модели. Выберите «Студент» для класса модели и выберите ContosoUniversityEntities для класса контекста. Сохраните имя контроллера как StudentsController, Нажмите «Добавить». Если вы получили сообщение об ошибке, возможно, это связано с тем, что проект не был создан в предыдущем разделе. Если да, попробуйте создать проект, а затем снова добавьте элемент шаблона. По завершении процесса генерации кода вы увидите новый контроллер и представления в своем проекте. Повторите те же шаги, но добавьте Scaffold для класса регистрации. Когда закончите, у вас должен быть файл EnrollmentsController.cs и папка под заголовками Views named Enrollments с помощью представлений «Создать, удалить, детализировать, редактировать и индексировать». Добавить столбец Если вы обновляете структуру таблицы в своей базе данных, вам необходимо убедиться, что ваше изменение распространяется на модели данных, представления и контроллер.
В таблицу Student добавьте столбец с именем MiddleName, который имеет тип NVARCHAR (50), и допускает значения NULL. Разверните это изменение в своей локальной базе данных. Новое поле добавляется в таблицу. Если вы не видите его в обозревателе объектов SQL Server, нажмите кнопку «Обновить» на панели. Новый столбец существует в таблице базы данных, но в настоящее время он не существует в классе модели данных. Вы должны обновить модель, чтобы добавить новый столбец. В папке «Модели» откройте файл ContosoModel.edmx, чтобы отобразить диаграмму модели. Обратите внимание, что модель Student не содержит свойства MiddleName. Щелкните правой кнопкой мыши в любом месте проектной поверхности и выберите «Обновить модель из базы данных». В мастере обновления выберите вкладку «Обновить» и таблицу «Студент». Нажмите «Готово». По завершении процесса обновления диаграмма базы данных включает новое свойство MiddleName. Сохраните файл ContosoModel.edmx. Вы должны сохранить этот файл для нового свойства, которое будет распространено в классе Student.cs. Теперь вы обновили базу данных и модель. Постройте решение. К сожалению, в представлениях все еще нет нового свойства. Чтобы обновить представления, у вас есть два варианта: вы можете повторно сгенерировать представления, добавив снова шаблоны для класса Student, или вы можете вручную добавить новое свойство к существующим представлениям. В этом уроке вы снова добавите шаблоны, потому что вы не внесли никаких изменений в автоматически создаваемые представления. Вы можете вручную добавить свойство, когда вы внесли изменения в представления, и не хотите терять эти изменения. Чтобы обеспечить повторное создание представлений, удалите папку «Студенты» в разделе «View» и удалите «StudentsController». Затем щелкните правой кнопкой мыши папку Controllers и добавьте шаблон для модели Student. Опять же, назовите контроллер StudentsController. Выберите ОК. Представления теперь содержат свойство MiddleName. Вы можете настроить код в соответствии с конкретными требованиями вашего приложения. В настоящее время ваше приложение не отображает зарегистрированные курсы для выбранного студента. В этом разделе вы добавите зарегистрированные курсы для каждого учащегося в представление Details для учащегося. Open Students / Details.cshtml и ниже последней вкладки </ dl>, но перед закрывающим тегом </ div> добавьте следующий код. CSHTMLкопия <table class="table"> <tr> <th> Course Title </th> <th> Grade </th> <th> Credits </th> </tr>
@foreach (var item in Model.Enrollments) { <tr> <td> @Html.DisplayFor(modelItem => item.Course.Title) </td> <td> @Html.DisplayFor(modelItem => item.Grade) </td> <td> @Html.DisplayFor(modelItem => item.Course.Credits) </td> </tr> } </table> Этот код создает таблицу, которая отображает строку для каждой записи в таблице регистрации для выбранного ученика. Метод Display отображает HTML для объекта (modelItem), который представляет выражение. Вы используете метод Display (а не просто вставляете значение свойства в код), чтобы убедиться, что значение отформатировано правильно в зависимости от его типа и шаблона для этого типа. В этом примере каждое выражение возвращает одно свойство из текущей записи в цикле, а значения - это примитивные типы, которые отображаются как текст.
Перейдите к разделу «Студенты / Индекс» и выберите «Подробности» для одного из учеников. Вы увидите, что зарегистрированные курсы включены в представление. чтобы ограничить длину значений, предоставленных для свойств FirstName, LastName и MiddleName. В базе данных эти значения ограничены 50 символами; однако в вашем веб-приложении ограничение персонажа в настоящее время не применяется. Если пользователь предоставляет более 50 символов для одного из этих значений, страница будет сбой при попытке сохранить значение в базе данных. Вы также ограничите класс до значений от 0 до 4. Откройте файл Student.cs в папке «Модели». Добавьте в класс следующий выделенный код. C #копия namespace ContosoSite.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations;
public partial class Student { public Student() { this.Enrollments = new HashSet<Enrollment>(); }
public int StudentID { get; set; } [StringLength(50)] public string LastName { get; set; } [StringLength(50)] public string FirstName { get; set; } public Nullable<System.DateTime> EnrollmentDate { get; set; } [StringLength(50)] public string MiddleName { get; set; }
public virtual ICollection<Enrollment> Enrollments { get; set; } } } В Enrollment.cs добавьте следующий выделенный код. C #копия namespace ContosoSite.Models { using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations;
public partial class Enrollment { public int EnrollmentID { get; set; } [Range(0, 4)] public Nullable<decimal> Grade { get; set; } public int CourseID { get; set; } public int StudentID { get; set; }
public virtual Course Course { get; set; } public virtual Student Student { get; set; } } } Постройте решение. Перейдите на страницу для редактирования или создания ученика. Если вы попытаетесь ввести более 50 символов, появится сообщение об ошибке. Перейдите на страницу для редактирования заявок и попытайтесь присвоить оценку выше 4. Полный список аннотаций проверки данных, которые вы можете применить к свойствам и классам, см. В разделе System.ComponentModel.DataAnnotations.
|
|||||||
Последнее изменение этой страницы: 2019-04-27; просмотров: 297; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.192.3 (0.036 с.) |