Таким образом, я использовал аннотации данных для проверки в проекте MVC, и они, похоже, работают в большинстве сценариев.
Вот два примера в моем текущем проекте, где они, кажется, не подходят, и я не уверен, какое место лучше поставить для проверки.
1) У меня есть страница «Присоединиться к лиге», которая содержит форму, в которой зарегистрированный пользователь вводит имя своей команды и нажимает кнопку, чтобы присоединиться к лиге. Когда они отправляют форму, мне нужно убедиться, что у текущего пользователя еще нет команды в лиге. Поэтому в основном необходимо запросить в БД этот идентификатор пользователя и идентификатор лиги, чтобы убедиться, что для пользователя не существует команды. Моя ViewModel не содержит идентификатор пользователя, поскольку он не имеет отношения к представлению.
2) На этой же странице мне также нужно убедиться, что название команды уникально. Это легко, если вы просто смотрите, существует ли он в таблице. Вы создаете пользовательский атрибут проверки, который запрашивает таблицу для значения поля. Однако мне нужно посмотреть, существует ли он в таблице для определенного идентификатора лиги. (лига, в которую они вступают.)
Не похоже, что аннотации данных являются идеальным решением для чего-либо, кроме простой проверки. Мое текущее решение состоит в том, чтобы запросить базу данных в начале метода после действия и добавить ошибку в ModelState вручную. (да, ужасно)
Есть идеи?