Добавление классов метаданных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Добавление классов метаданных



Добавление атрибутов проверки непосредственно в класс модели работает, если вы не ожидаете изменения базы данных; однако, если ваша база данных изменяется, и вам необходимо восстановить класс модели, вы потеряете все атрибуты, которые вы применили к классу модели. Такой подход может быть очень неэффективным и подвержен утрате важных правил валидации.

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

В папке «Модели» добавьте класс с именем Metadata.cs.

Замените код в Metadata.cs следующим кодом.

 

using System;

using System.ComponentModel.DataAnnotations;

 

namespace ContosoSite.Models

{

public class StudentMetadata

{

[StringLength(50)]

[Display(Name="Last Name")]

public string LastName;

 

[StringLength(50)]

[Display(Name="First Name")]

public string FirstName;

 

[StringLength(50)]

[Display(Name="Middle Name")]

public string MiddleName;

 

[Display(Name = "Enrollment Date")]

public Nullable<System.DateTime> EnrollmentDate;

}

 

public class EnrollmentMetadata

{

[Range(0, 4)]

public Nullable<decimal> Grade;

}

}

Эти классы метаданных содержат все атрибуты проверки, которые вы ранее применяли к классам модели. Display атрибут используется для изменения значения, используемого для текстовых меток.

Теперь вы должны связать классы модели с классами метаданных.

В папке «Модели» добавьте класс с именем PartialClasses.cs.

Замените содержимое файла на следующий код.

 

using System;

using System.ComponentModel.DataAnnotations;

 

namespace ContosoSite.Models

{

[MetadataType(typeof(StudentMetadata))]

public partial class Student

{

}

 

[MetadataType(typeof(EnrollmentMetadata))]

public partial class Enrollment

{

}

}

Обратите внимание, что каждый класс помечен как partial класс, и каждый соответствует имени и пространству имен как класс, который автоматически генерируется. Применяя атрибут метаданных к частичному классу, вы гарантируете, что атрибуты проверки данных будут применены к автоматически генерируемому классу. Эти атрибуты не будут потеряны при регенерации классов модели, потому что атрибут метаданных применяется в частичных классах, которые не восстанавливаются.

Чтобы восстановить автоматически созданные классы, откройте файл ContosoModel.edmx. Еще раз щелкните правой кнопкой мыши по поверхности дизайна и выберите «Обновить модель из базы данных». Несмотря на то, что вы не изменили базу данных, этот процесс будет восстанавливать классы. На вкладке «Обновить» выберите «Таблицы» и «Готово».

Сохраните файл ContosoModel.edmx, чтобы применить изменения.

Откройте файл Student.cs или файл Enrollment.cs и обратите внимание, что ранее не были добавлены атрибуты проверки данных, которые вы применяли ранее. Однако запустите приложение и обратите внимание, что правила проверки все еще применяются при вводе данных.

 

Добавить ссылки на таблицы

Чтобы облегчить вам переход к новым представлениям, вы можете добавить пару гиперссылок в представления Index для учащихся и учащихся. Откройте файл в Views / Home / Index.cshtml, который является домашней страницей вашего сайта. Добавьте следующий код ниже jumbotron.

CSHTMLкопия

<div>

@Html.ActionLink("List of students", "Index", "Students")<br />

@Html.ActionLink("List of enrollments", "Index", "Enrollments")

</div>

Для метода ActionLink первым параметром является текст, отображаемый в ссылке. Второй параметр - это действие, а третий параметр - имя контроллера. Например, первая ссылка указывает на действие индекса в StudentsController. Из этих значений строится фактическая гиперссылка. Первая ссылка в конечном итоге включает пользователей в файл Index.cshtml в папке Views / Students.

 

Просмотр таблиц с данными

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

Щелкните правой кнопкой мыши файл Views / Home / Index.cshtml и выберите «Просмотр в браузере». На этой странице щелкните ссылку для списка учеников.

На этой странице обратите внимание на список учащихся и ссылки для изменения этих данных.

Нажмите ссылку «Создать новую» и укажите некоторые значения для нового ученика.

Нажмите «Создать» и обратите внимание, что новый ученик добавлен в ваш список.

Выберите ссылку «Изменить» и измените некоторые значения для учащегося.

Нажмите «Сохранить» и обратите внимание, что запись студента была изменена.

Наконец, выберите ссылку «Удалить» и подтвердите, что вы хотите удалить запись, нажав кнопку «Удалить».

Без написания кода вы добавили представления, которые выполняют общие операции с данными в таблице Student.

Возможно, вы заметили, что текстовая метка для поля основана на свойстве базы данных (например, LastName), которое не обязательно означает, что вы хотите отображать на веб-странице. Например, вы можете предпочесть, чтобы метка была Фамилия. Вы устраните эту проблему с отображением позже в учебнике.

 



Поделиться:


Последнее изменение этой страницы: 2019-04-27; просмотров: 190; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.184.90 (0.01 с.)