Приступая ко всем этим материалам MVVM, я следил за этим сообщением Джоша Смита , в котором говорится о подходе к проверке при использовании MVVM. Пример прост, и я начал задаваться вопросом, как бы я использовал его в своем собственном приложении.
В моем BLL есть класс BookInfo
, который реализует IDataErrorInfo для сообщения о недопустимых значениях, таких как «дата публикации не может быть в будущем» или «количество страниц не может быть отрицательным». Тогда мой AddBookViewModel
проверит состояние вновь созданного BookInfo
, увидит, что ошибки существуют, и AddBookView
отобразит красный шарик рядом с соответствующим TextBox. Это просто, как в примере из поста.
Теперь мой класс BookInfo
также содержит список идентификаторов авторов. После добавления нового BookInfo в мою базу данных мне нужно проверить, существуют ли эти идентификаторы авторов.
Должна ли эта проверка проводиться в моем классе BookInfo
? Если это так, то мне придется передать объект AuthorManager
моего BLL в конструктор BookInfo
, так как первый будет содержать такие методы, как CheckIfExists(int authorID)
.
Это рекомендуемый подход? Что делать, если в БД много записей? Динамическая проверка повлияет на производительность?
С другой стороны, некоторые проверки в классе BookInfo
и некоторые другие могут показаться немного беспорядочными, особенно когда все эти проверки могут быть отнесены к одной и той же группе ... т.е. убедитесь, что вновь созданный объект BookInfo
является действительным. Или, может быть, я ошибаюсь, поскольку у меня нет опыта, чтобы правильно судить.
Некоторые рекомендации?