Как использовать удаленный атрибут в классах структуры сущностей

1

В моем приложении я создаю свой файл EDMX, используя метод Database First.

Я получаю классы, созданные для всех таблиц.

Я могу использовать аннотации, такие как Required, Display, StringLength, RegularExpression и т.д. там.

Я знаю, что в моей модели MVC я могу использовать аннотацию с именем "Remote", с помощью которой я могу проверить свойство своей сущности.

Можно ли использовать этот атрибут "Remote" в классах сущностей? или может каким-то другим способом создать пользовательскую аннотацию?

Обновление: у меня есть ViewModel.

    public Exam Exam { get; set; }
    public TestInfo Test { get; set; }

Оба Exam & TestInfo - это классы сущностей, сгенерированные каркасом сущности.

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

  • 0
    посмотрите здесь - msdn.microsoft.com/en-us/library/gg508808(vs.98).aspx
  • 0
    Я видел это, но это реализовано в модели в проекте MVC. Я хочу реализовать такую же вещь, где мои классы сущностей генерируются с использованием инфраструктуры сущностей.
Теги:
entity-framework
data-annotations
asp.net-mvc-4

1 ответ

1

Remote - это аннотация данных, используемая для проверки ввода входного пользователя в пользовательский интерфейс. Он вызывает ajax-вызов одного из ваших методов действий (который вы можете указать) и ожидает значения результата, которое указывает, существуют ли эти данные в вашей системе.

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

public class RegisterVM
{
    [Required]  
    [Remote("IsAvailable", "Validation")]      
    public override string UserName { get; set; }
}

Теперь у вас может быть ваш метод IsAvailable чтобы проверить имя пользователя или нет. Также убедитесь, что теперь ваш регистр viw строго типизирован для этой новой модели просмотра RegisterVM.

@model RegisterVM
@using(Html.Beginform())
{
  // your form controls

}

Не имеет смысла иметь атрибут Remote в классе Entity. Это должно быть на модели просмотра. В противном случае вы смешиваете вещи!

  • 0
    Я хочу сделать это в моем классе сущности. Не в ViewModel
  • 0
    Почему вы хотите сделать это в своем классе сущности? Что ты пытаешься сделать ?
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню