В моем приложении я создаю свой файл EDMX, используя метод Database First.
Я получаю классы, созданные для всех таблиц.
Я могу использовать аннотации, такие как Required, Display, StringLength, RegularExpression и т.д. там.
Я знаю, что в моей модели MVC я могу использовать аннотацию с именем "Remote", с помощью которой я могу проверить свойство своей сущности.
Можно ли использовать этот атрибут "Remote" в классах сущностей? или может каким-то другим способом создать пользовательскую аннотацию?
Обновление: у меня есть ViewModel.
public Exam Exam { get; set; }
public TestInfo Test { get; set; }
Оба Exam & TestInfo - это классы сущностей, сгенерированные каркасом сущности.
В классе сущности "Экзамен" есть свойство "ExamName", которое я хочу проверить для дубликатов имен.
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. Это должно быть на модели просмотра. В противном случае вы смешиваете вещи!